可能重复:
When the bots attack!
我的免费分类门户网站是用PHP编码的。现在正面临一系列广告,似乎是通过自动提交者等工具发布的。因此,我需要通过以任何方式完成的自动化来检测和避免这些类型的广告。
答案 0 :(得分:1)
答案 1 :(得分:1)
有几种方法。
一个简单的方法是在输入表单上放置一个文本框
Type the word "human": [ ]
如果该输入!= "HUMAN"
的修剪大写版本,那么你要么是一个愚蠢的人类,要么是一个愚蠢的机器人。
显然,这对于某人来说非常容易失败,但前提是他们会花时间为您的网站编写代码。换句话说,它有所帮助,但并非万无一失。
在更高级别上,集成一个recaptcha系统,例如http://www.google.com/recaptcha
答案 2 :(得分:1)
最简单的解决方案之一是honeypots,其目的是包含一些具有常用名称的字段,如电子邮件,地址等,并将其隐藏在用户之外,并使用不太常见的原始名称。如果其中一个隐藏字段不为空,则由bot提交。
为了使其更复杂,您可以使用md5示例动态加密每个字段名称:
$encodedFieldName = md5('email_address' . session_id());
当然,您需要创建包含允许字段的数组,并在将结果提交到数据库之前将其检索回来。