我即将实施一个需要某种形式的垃圾邮件预防的网络表单。我想避免涉及用户输入的垃圾邮件防范技术,并且与Akismet集成对于这种情况来说是过度的(如果少量垃圾邮件通过就可以了)。我也更愿意避免使用涉及javascript的技术 - 再次将用户体验放在第一位,我不想在没有javascript的设备上折扣用户。
一种常见的技术是使用CSS隐藏的蜜罐表单字段,以便最终用户看不到它,但可以通过垃圾邮件程序看到。理想情况下,这应该有一个诱人的名称,如“name”或“email_address”。但是我担心这些可以由浏览器(或其他第三方)表单自动完成工具填写,因此将合法提交标识为垃圾邮件。
这让我想到了自动完成工具会忽略的表单元素,但是spambots会尝试使用。复选框输入是首先想到的 - 许多表单包含一个复选框,沿着“请接受我们的条款和条件”。当然spambots会尝试将其标记为已检查?因此,隐藏的复选框可能是一个可接受的解决方案:
<div class="hidden">
<label>
Are you not a human?
<input type="checkbox" name="accept_terms" value="1" />
</label>
</div>
没有CSS的用户会看到该字段,这不是很好,但是用户的比例非常小,标签应该说明他们不应该打勾。
我主要担心的是,我不确定大多数垃圾邮件机器人如何与复选框进行交互。这项技术会起作用吗?
请注意:这不是为了引发有关各种垃圾邮件防范技术的讨论 - 只是为了获得有关此技术的反馈。
谢谢!
修改:<div class="hidden">
可以很容易<div class="abc">
,提供.abc { display: none; }
答案 0 :(得分:0)
老实说,我不认为写垃圾邮件的人会尝试与隐藏字段进行交互。他们试图模仿人类的行为,使用普通的浏览器,而那些人看不到任何“隐藏”的东西。
答案 1 :(得分:0)
我自己使用这种方法,但最近SpamBots已经明白了。
我刚才看到的另一种方法,虽然更难实现,但它是一个TIMER。因此,如果他们至少花费一些时间来填写它,那么它可能是一个spambot。 虽然,如果他们使用某些东西自动填充,那么他们可能会很快填补它。
以下是该方法的工作原理: http://pageaffairs.com/notebook/contact-form-honeypots
答案 2 :(得分:0)
我知道这是一个老问题,但是我认为它变得越来越重要,因为(根据我的经验)蜜罐技术是有效的。我昨天刚刚提供了关于类似问题的反馈,因此不要重复I'll drop that link here。
我认为,诀窍是了解机器人的工作方式。例如:它们是为提高效率而构建的,这意味着速度,这意味着它们将比人类更快地填写和提交表格。像这样与人类行为不同的任何事物都可以用来阻止他们。无论它们如何发展,这都是要保持的关键理解。