php设置输入尝试后的时间延迟


php set time delays after input attempts

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

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

如果该用户的请求数量很高,则可以在文件开头添加睡眠。在过去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
?>