【发布时间】:2013-11-27 20:28:35
【问题描述】:
如果我在我的网站联系页面上的表单包装器上显示:无,垃圾邮件机器人仍然能够提交它吗?
如果不是,那么一个可能的解决方案是只放置一个链接说 - 给我们发送电子邮件 - 当点击它时显示:显示带有表单的包装器,从而防止垃圾邮件?
谢谢, -O
【问题讨论】:
如果我在我的网站联系页面上的表单包装器上显示:无,垃圾邮件机器人仍然能够提交它吗?
如果不是,那么一个可能的解决方案是只放置一个链接说 - 给我们发送电子邮件 - 当点击它时显示:显示带有表单的包装器,从而防止垃圾邮件?
谢谢, -O
【问题讨论】:
垃圾邮件机器人通常是自动执行和运行的脚本。它不是一个真正的人,所以机器人不会关心它是否真的被样式隐藏了。如果您想防止“垃圾邮件机器人”滥用它,您可以在用户单击按钮的那一刻将其添加到 DOM。
【讨论】:
那里有许多不同类型的垃圾邮件机器人,并且在填写表单时使用了许多不同的方法(因此:向您发送垃圾邮件)。
在大多数情况下,这些是自动脚本,实际上根本不会“看到”页面,而只是使用它在页面上找到的标记。为此,使用 CSS 隐藏表单根本不会阻止它们。
同样:如果您在网站上留下mailto: 链接,您会发现有很多机器人会抓取您的电子邮件地址并直接向您发送垃圾邮件。
恐怕没有万无一失的方法可以阻止垃圾邮件。不过,您可以使用很多技术来减少它。
最常见的是使用像recaptcha 这样的验证码服务,尽管这并不能具体保证某些垃圾邮件仍然不会被过滤掉。
我倾向于使用的另一个技巧是Honey Pot input,它相对容易使用,并且似乎可以很好地阻止垃圾邮件发送者。
【讨论】:
垃圾邮件机器人的本意是速度很快,它们不解析 CSS 或 JavaScript。如果你想防止它们,你可以包含一个CAPTCHA,甚至是一个简单的,比如要求用户写小数字的总和或乘积(显然用一个句子写请求,使用字母而不是数字)。像这样的廉价解决方案应该可以阻止大多数垃圾邮件,但如果有人想针对您,它很容易受到攻击。
我不建议动态创建表单,因为无法执行 JavaScript 的用户将看不到它。
【讨论】:
如果使用最人性化、最简单且极其有效的蜜罐,请尽量不要使用 css hidden 命令隐藏您的输入字段。如果机器人很复杂,它们可以看到这一点。 将字段绝对定位在表单的顶部,向左或向右,没有边框,背景和文本颜色与表单所在的元素相同。
【讨论】: