Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Blokada IP po błędnym logowaniu
Forum PHP.pl > Forum > Przedszkole
marian84
Witam!
Jak zablokować IP np, na godzinę gdy ktoś 3 razy błędnie wpisze login lub hasło podczas logowania?
Puzi
Ja proponuje użyć cookie...
marian84
Cytat(Puzi @ 11.06.2008, 17:35:02 ) *
Ja proponuje użyć cookie...


No tak, tylko jak?? php ciagle się uczę więc prosze o jakieś konkrety.
k_@_m_i_l
Robisz tak :
tworzysz w mysql tabele,do której będziesz dodawać zablokowane ip oraz godzine blokady.
Następnie w cookies zapisujesz liczbe prób logowań,jeżeli jest większa niż 3 to dodajesz ip do tabeli.A przed każdą próbą logowania sprawdzasz czy dane ip nie jest w niej zawarte.Może słabe wydajnościowe,ale przy małych stronach się sprawdzi.
simple programmer
Gorzej, jak ktoś ma zmienny IP.
Proponuję użyć tych dwóch rozwiązań.
Do ustawiania cookie (musisz słać cookie przed czymkolwiek wysyłanym do przeglądarki czyli tekst itp.)
służy setcookie" title="Zobacz w manualu PHP" target="_manual
odczytujesz
  1. <?php
  2. $cookie = $_COOKIE['nazwa-cookie'];
  3. ?>
widmo17
Np.
Kod
<?php
setcookie("ban","1",time()+99999);
if($_COOKIE["ban"]<=3){
if($_POST["login"]=="" && $_POST["hasuo"]==""){
  //wyświetla formularz...
}else{
  //tutaj spr. istnienie cookiesa i jeśli istnieje, dodaje 1 do jego wartości, jeśli login jest błędny (info na google;) )
  //+ wykonuje logowanie czy co tam chcesz :P
}
}else{
if(!$ip=$_SERVER[HTTP_X_FORWARDED_FOR]){
  $ip=$_SERVER[REMOTE_ADDR];
}//$ip
$query="insert into `banned` (`ip`) values ('".$ip."')";
mysql_query($query);
}
?>

a do miejsca w którym chcesz bannować:
Kod
<?php
if(!$ip=$_SERVER[HTTP_X_FORWARDED_FOR]){
  $ip=$_SERVER[REMOTE_ADDR];
}//powtórka z rozrywki;]

$query=mysql_num_rows(mysql_query("select * from `banned` where `ip` = '".$ip."'));
if(mysql_query($query)){
die("Zostałeś zbannowany, wyp... ad");
}
?>


Cytat
musisz słać cookie przed czymkolwiek wysyłanym do przeglądarki czyli tekst itp.

a ob_start() ? winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.