问题与暴力攻击有关。 如果用户输入了错误的密码,php会在mysql的datetime尝试记录。如果密码不正确,我需要用户只能在一定时间(1-2秒)后进行下一次尝试。 据我所知,php睡眠不好,因为它不会阻止机器人发出请求?
什么是解决方案(设置没有PHP睡眠的时间延迟)?
答案 0 :(得分: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
?>