我无法在谷歌上搜索有关此主题的有用信息,因此我将不胜感激涉及该主题的文章的链接或此处的直接答案,两者都可以。
我正在一个有很多访问者的网站上用 PHP/MySQL 实现搜索系统,所以我将对允许访问者在搜索字段中输入的字符长度和所需的最短时间实施一些限制在两次搜索之间。由于我对这些问题有点陌生,而且我真的不知道为什么通常这样做的“真正原因”,所以我只是假设实现字符最小长度以最小化数据库将返回的结果数量,并实施搜索之间的时间,以防止机器人向搜索系统发送垃圾邮件并减慢网站速度。那正确吗?
最后,如何实现两次搜索之间的最短时间的问题。我用伪代码提出的解决方案是这样的
- 在提交搜索表单的 URL 处设置测试 cookie
- 将用户重定向到应输出搜索结果的 URL
- 检查测试cookie是否存在
- 如果不是,输出一个警告,他不允许使用搜索系统(可能是机器人)
- 检查是否存在告知上次搜索时间的 cookie
- 如果这不到 5 秒前,输出一个警告,他应该在再次搜索之前等待
- 搜索
- 将上次搜索时间设置为当前时间的 cookie
- 输出搜索结果
这是最好的方法吗?
我理解这意味着禁用 cookie 的访问者将无法使用搜索系统,但如今这真的是个问题吗?我找不到 2012 年的统计数据,但我设法找到数据表明 3.7% 的人在 2009 年禁用了 cookie。这似乎并不多,我想这些天可能会更少。