我们正在尝试想出一个解决方案来解决我们一直遇到的一个主要的垃圾邮件和机器人问题。基本上,我们有一个供人们填写的报名表,要求提供基本信息(姓名、电子邮件、地址等)--有时我们只要求电子邮件。
我们的表单发布在数以千计的网站和域名上,所以我们开始看到垃圾邮件和机器人执行表单,提交虚假信息。
到目前为止,我们已经使用了这些东西来阻止它们:
1)同一IP提交3次后,IP被封堵。
2)我们检查http referrer以确保它来自预期的页面。如果不是,我们就杀了这个入口。
3)如果邮件已经录入过一次,系统不会重复录入。
4)我们已经添加了验证码,但是我们的大多数客户不想使用它,因为它减少了表单提交。
我们的表单是通过AJAX请求提交的。目前机器人正在向AJAX文件提交请求,HTTP_REFERRER来自预期的页面,并且没有任何信息表明它们正在使用代理。
我可能是错的,但似乎他们有一个宏设置,每次使用一个新的in轮换,并自动填写我们的表单字段,并提交它们,就像一个人做的那样。
到最近为止,我们已经看到这些机器人提交我们的表格成千上万次,都使用相同类型的地址(如@yahoo或@hotmail),但提交都来自不同的IP地址,所以我们无法检测和阻止它们。在将其中的一些IP输入到IP检查器中后,看起来它们中的大多数来自代理服务器。
我们提出的一个阻止垃圾邮件的想法是,当用户在其中一个字段中键入内容时,javascript会调用cookie。当他们提交表单时,如果没有找到cookie,我们就丢弃该条目。这样行得通吗?
我们没有实现Honeypot方法,因为表单是使用AJAX提交的,而且我们已经了解到,许多机器人都知道很容易绕过该方法。
任何关于如何最好地解决这个问题的建议/想法都将不胜感激!
发布于 2014-08-29 09:05:13
你不需要饼干。只需让onload() javascript在隐藏的表单字段中设置值。如果提交的表单中此字段为空,则将其丢弃。
当然,您确实意识到,任何基于javascript的解决方案都需要实际客户端的浏览器启用javascript,并且有各种面向隐私的工具可以让用户控制特定网站是否启用javascript。这是你自己决定的事情,不管它对你来说是不是一个问题。
但这种简单的、基于javascript的黑客攻击应该足够简单,至少在垃圾邮件进化到能够处理它之前是这样的。
发布于 2014-08-29 09:09:00
你可以问一些非常简单的验证问题,比如“2+3= ?”。它们不像验证码那样烦人,但显然不是最有效的。不过,它应该会减少垃圾邮件的数量。
https://stackoverflow.com/questions/25560185
复制相似问题