我无法谷歌在这个问题上有用的东西,所以我会很感激链接到在这个问题处理的文章,或直接在这里回答,要么罚款。防止搜索滥用
我在一个网站上实现了一个PHP/MySQL搜索系统,这个网站有很多访问者,所以我要实现一些限制,允许访问者在搜索字段中输入的字符长度和两次搜索之间所需的最短时间。由于我对这些问题很陌生,而且我不知道为什么通常会这样做的“真正原因”,所以我只假设字符最小长度是为了尽量减少数据库返回结果的数量而实现的,并且搜索之间的时间间隔将被执行,以防止机器人将垃圾邮件发送到搜索系统并减慢网站速度。是对的吗?
最后,如何实现两次搜索之间的最短时间的问题。我想出了一个解决方案,在伪代码,这是
- 设置的URL检测Cookie,其中搜索表单提交给
- 将用户重定向到URL在搜索结果应该是输出
- 检查测试cookie存在
- 如果不是,输出自己是不是允许使用的搜索系统警告(可能是一个机器人)
- 检查一个cookie存在,告诉蒂姆最后的搜索
- 如果这是不太有5秒前,输出一个警告,他应该再次搜索
- 搜索
- 设置与上次搜索到当前为止的cookie之前等待电子
- 输出搜索结果
这是做的最好的方法是什么?
我知道这意味着禁用cookies的访问者将无法使用搜索系统,但这些日子真的是个问题吗?我无法找到2012年的统计数据,但我设法找到了数据,说2009年有3.7%的人已经禁用了Cookie。这看起来不是很多,我想这些日子可能应该更少。
“由于我对这些问题有所了解,并且我并不真正了解为什么通常会这样做的”真正原因“,”您认为可能没有必要吗?我不做任何工作或个人网站。 – 2013-03-21 00:31:59
@Dagon我已经考虑过这个,我也没有实现过。但是这个特定的网站最近遭到了很多DDoS的攻击,客户对这个问题的未来问题感到害怕,所以我认为搜索滥用应该是另外一件事情,以防止... – 3Nex 2013-03-21 00:57:58
如果你想花时间修复不存在的问题 - 玩的开心! – 2013-03-21 01:01:05