0

现在我在我的所有网站中都使用了防洪功能:

function flood($name,$time)
{
 $name = 'tmptmptmp'.$name;
 if(!isset($_SESSION[$name]))
 {
  $_SESSION[$name] = time();
  return true;
 }
 else
 {
  if(time()-$time > $_SESSION[$name])
  {
   $_SESSION[$name] = time();
   return true;
  }
  else
  {
   return false;
  }
 }
}

我这样使用它:

if(flood('post',60)) do something;
else 'you're posting too fast';

这种方式安全吗?或者我是否需要用一个存储 ips 的数据库表替换它/完成它并检查他们是否早先提出了请求?

4

1 回答 1

0

这取决于。您的用户清除 cookie 以通过您的防洪保护的可能性有多大?我会说,如果他们必须再次登录,99% 的用户甚至都不会打扰。

但可以肯定的是,如果您真的想要更好的方法,请将 ips 存储在数据库中。但即使是这样也可以通过获得一个新的 IP 来打败。

于 2010-07-07T22:58:43.210 回答