Honeypot垃圾邮件陷阱与浏览器自动填充功能冲突

时间:2018-10-11 12:27:43

标签: javascript spam spam-prevention honeypot

您可能知道,Chrome浏览器不再支持:autocomplete =“ off”,autocomplete =“ nope”,autocomplete =“ false”甚至autocomplete =“ new-password”。

这意味着,我有时会收到有关蜜罐陷阱阻止用户提交表单的报告,因为陷阱输入是自动填充的,即使未显示。

设置陷阱的做法是将TEXT输入包装为display:none;元素,因此垃圾邮件漫游器将无法发现其真正隐藏的内容(除非它们更聪明并且通常不是),并且如果此输入内容,您将不允许提交,因为该字段认为对普通用户而言是隐藏的和空的。

在使用蜜罐陷阱而浏览器却忽略了使用上述对象自动完成或自动填充的需求时,您的做法是什么?

2 个答案:

答案 0 :(得分:0)

如果您使用的是FormFind(分析页面的源代码并提取'action'参数,则输入标签将找到隐藏的字段。隐藏的字段不会停止垃圾邮件机器人。

FormFind将从HTML源代码中查找表单上的所有字段。找到输入字段和“ action”参数(FormFind确实找到)后,它很容易使用CURL或WGET来“提交”表单。

尽管reCAPTCHA可以解决垃圾邮件问题,但我发现的唯一技术(以及在解决方案中使用的技术)是拥有一些JavaScript代码,这些代码将在onclick / onfocus事件上更改表单的action参数。而且,如果您在JS函数中延迟了更改操作参数的时间,那将是垃圾邮件程序的额外拦截器。

使用JS进行更改(或者,如果您坚持使用一个,甚至要填充一个隐藏的字段)是一种很好的技术。 CUSL和WGET无法处理JS代码。 (有一个开源项目声称能够处理JS代码,但几年前就被放弃了。)

我在免费的FormSpammerTrap.com网站的联系表单中使用了JS技巧。代码是免费和开源的。和那里的联系表使用我的技术。尚未从那里通过spambot(自动过程)获得任何垃圾邮件。我正在开发一个新版本,它将增加延迟,甚至进一步阻止垃圾邮件发送者。

任何人都可以要求提供代码进行尝试。免费。不收费没有广告。除了在网站上如何使用它来阻止垃圾邮件外,$$对我没有任何好处。

因此,使用隐藏字段阻止垃圾邮件监听无法正常工作。您必须对它们采取更多防御措施。使用JS代码技术是另一层,它将帮助阻止几乎所有的垃圾邮件程序。 (目前尚无100%的解决方案,但我认为我的想法很接近-已经存在了两年。)

答案 1 :(得分:0)

我从输入标签中删除了name变量,这解决了隐藏的蜜罐字段自动填充的问题...