我正在运行一个在线词典,让用户有机会搜索单词的翻译。现在我意识到,有很多搜索请求似乎不是由人类输入的。我不想添加某种验证码,因为这会阻止人们使用我的网站。所以现在我想知道是否有办法在不使用验证码的情况下摆脱这些“垃圾邮件”搜索。我知道不可能完全过滤请求,但我想减少垃圾邮件请求的数量。
3 回答
您可以尝试使用用户代理列表/解析器并阻止进入该站点的每个机器人......但如果他们不想被检测到,那将不是万无一失的。
您可以在意识到 IP 不是人类之后手动阻止它们……但这需要大量的工作和对站点和日志文件的关注。
您可以将搜索限制为每天几十次,或者在搜索之间设置一个强制时间……但这可能会影响真实用户。
您可以在他们第一次访问该站点时要求验证码并将其存储在 cookie 中,然后在所有后续搜索中检查该 cookie。
您可以使用 Javascript 在页面加载后创建表单和输入,这对于大多数仅在页面加载后立即阅读页面的机器人来说可能不会出现。
您可以对可以搜索的内容设置一些限制(最少 4 个字符等),这可能会减少搜索量。
基于图像的验证码的一个简单替代方法是问一个问题,无论是数学问题(1 加 5)还是简单的英语问题(黑色汽车是什么颜色?)
我会做什么创建一个问题的数据库表和问题的答案。越多越好。
然后,当您加载搜索页面时,随机选择其中一个问题向用户显示。
需要注意的是,有人可能会多次刷新您的网站以了解所有可能的问题。然后,他们可以创建一个与您的答案类似的数据库表,并将机器人指向该表以查找答案。
话虽如此,我认为它仍然是一个可行的替代方案,具有一点创造力。
我所知道的最可靠的方法是使用验证码。您应该知道有很多验证码解决方案。换句话说,有一些对人眼来说很简单的验证码。例如: http ://www.phpclasses.org/package/3949-PHP-Generate-CAPTCHA-validation-images-with-reload-.html