这更像是一个安全问题。 实施诸如“按IP计算每x时间的特定页面访问次数”并在超出限制时阻止该IP地址的最佳做法是什么?
一些步骤:
如何每30秒限制5个表单子项?如果用户每30个IP使6个被阻止30分钟?
感谢。
答案 0 :(得分:1)
您将要在数据库中存储操作或请求以及它们的time()。然后运行一个简单的mysql_query()来检查用户是否超出了他们的限制。例如
"SELECT * FROM `requests` WHERE
`request_time` > '".(time() - (30 * 60))."' AND
`ip_address` = '".$_SERVER['REMOTE_ADDR']."';"
此查询的mysql_num_rows()应返回少于5。
每次用户加载页面或提交表单时都可以运行此查询,只需结束脚本的执行即可。
您可能还希望偶尔运行查询以删除旧行,可能使用cron作业。