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

时间:2013-02-19 19:49:45

标签: php

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

什么是解决方案(设置没有PHP睡眠的时间延迟)?

1 个答案:

答案 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

?>