Ochrona przed brute force
Założenie: Przedstawimy proste metody ograniczające ryzyko ataku brute force na formularz logowania.
Krok po kroku:
- Ograniczenie liczby prób logowania: Zastosujemy zmienną sesyjną do śledzenia liczby nieudanych prób logowania. Po przekroczeniu progu, zablokujemy dostęp na określony czas.
- Opóźnienie po nieudanej próbie: Wprowadzimy krótkie opóźnienie po każdej nieudanej próbie logowania, aby utrudnić zautomatyzowane ataki.
- Captcha: Dodanie CAPTCHA do formularza logowania skutecznie uniemożliwia automatyczne ataki.
= 3) {
echo "Zbyt wiele prób logowania. Spróbuj ponownie za 5 minut.";
exit;
}
// ... reszta kodu logowania ...
if ($login_nieudany) {
$_SESSION['login_attempts']++;
} else {
$_SESSION['login_attempts'] = 0; // Zresetuj licznik po udanym logowaniu
}
?>
Ten kod sprawdza, czy istnieje zmienna sesyjna `login_attempts`. Jeśli nie, tworzy ją i ustawia na 0. Jeśli liczba prób przekroczy 3, wyświetla komunikat o błędzie i kończy skrypt. Po nieudanej próbie logowania, licznik jest zwiększany. Po udanym logowaniu licznik jest resetowany.
Funkcja `sleep(2)` powoduje wstrzymanie skryptu na 2 sekundy po każdej nieudanej próbie logowania.
Implementacja CAPTCHA wymaga zewnętrznej biblioteki lub usługi (np. Google reCAPTCHA).
Pamiętaj, że to tylko podstawowe metody. Dla zaawansowanej ochrony przed atakami brute force, należy zastosować bardziej złożone techniki, takie jak ograniczenie liczby żądań z jednego adresu IP, wykorzystanie silnych haseł i regularne aktualizacje oprogramowania.