Старый пост, но позвольте мне опубликовать то, что у меня есть в этом конце 2016 года. Надеюсь, это все еще может помочь.
Это простой способ, но я думаю, что он эффективен для предотвращения атаки при входе в систему. По крайней мере, я всегда использую его в каждой своей сети. Нам не нужны CAPTCHA или другие сторонние плагины.
При первом входе пользователя в систему. Мы создаем сессию как
$_SESSION['loginFail'] = 10; // any number you prefer
Если вход в систему успешен, мы уничтожим его и позволим пользователю войти в систему.
unset($_SESSION['loginFail']); // put it after create login session
Но если пользователь терпит неудачу, как мы обычно посылаем ему сообщение об ошибке, в то же время мы уменьшаем сессию на 1:
$_SESSION['loginFail']-- ; // reduce 1 for every error
и если пользователь потерпит неудачу 10 раз, мы перенаправим его на другой веб-сайт или любые другие веб-страницы.
if (!isset($_SESSION['loginFail'])) {
if ($_SESSION['login_fail'] < 1 ) {
header('Location:https://google.com/'); // or any web page
exit();
}
}
Таким образом, пользователь больше не может открывать или заходить на нашу страницу входа, так как она перенаправлена на другой веб-сайт.
Пользователи должны закрыть браузер (чтобы уничтожить созданный нами сеанс loginFail), открыть его «снова», чтобы снова увидеть нашу страницу входа в систему.
Это полезно?