0

问题与蛮力攻击有关。如果用户输入了错误的密码,php 会在 mysql 中记录尝试的日期时间。如果密码不正确,我需要用户只能在一定时间(1-2 秒)后进行下一次尝试。据我了解 php sleep 不好,因为它不会阻止机器人发出请求?

什么是解决方案(在没有 php sleep 的情况下设置时间延迟)?

4

1 回答 1

1

如果该用户的请求数很高,您可以在文件开头添加睡眠。可能为过去 24 小时内的每个失败请求增加 1 秒,或者如果该数字达到某个阈值则退出。

<?
//script to find when last requests were made
if($failed>2)
{
    sleep($failed+1);
}elseif($failed>10)
{
    exit;//or redirect
}
//the rest of the file

?>
于 2013-02-19T19:54:16.540 回答