我即将实现一个需要某种形式的垃圾邮件预防的网络表单。我想避免涉及用户输入的垃圾邮件预防技术,并且在这种情况下与 Akismet 集成是多余的(如果少量垃圾邮件确实通过也可以)。我也更愿意避免涉及 javascript 的技术——再次强调用户体验是重中之重,我不想在没有 javascript 的设备上打折用户。
一种常见的技术是使用 CSS 隐藏的蜜罐表单字段,因此最终用户不可见,但垃圾邮件机器人可以看到。理想情况下,这应该有一个诱人的名称,如“name”或“email_address”。但是我担心这些可能由浏览器(或其他第 3 方)表单自动完成工具填写,因此将合法提交的内容识别为垃圾邮件。
这让我想到了自动完成工具会忽略的表单元素,但垃圾邮件机器人会尝试使用。复选框输入是首先想到的 - 许多表单都包含一个复选框,类似于“请接受我们的条款和条件”。垃圾邮件程序肯定会尝试将其标记为已检查?所以,也许一个隐藏的复选框是一个可以接受的解决方案:
<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; }