88
我们如何摆脱我们网站上的这些垃圾邮件机器人?

每个网站都会在某些时候成为垃圾邮件的受害者。您如何处理它会影响您的客户,并且大多数解决方案可能会阻止某些人填写您的表格。

这就是蜜罐技术的用武之地。它允许您忽略垃圾邮件机器人,而不会强迫您的用户填写验证码或跳过其他环节来填写您的表单。

这篇文章纯粹是为了帮助其他人在他们的网站表单上实施蜜罐陷阱。


更新:

自从在我所有客户的网站上实施以下蜜罐以来,我们已经成功阻止了99.5%(数千次提交)的所有垃圾邮件。那是没有使用“高级”部分中提到的技术,这些技术很快就会实现。

4

3 回答 3

145

概念

通过在您的表单中添加一个只有垃圾邮件机器人才能看到的不可见字段,您可以诱骗他们透露他们是垃圾邮件机器人而不是实际的最终用户。

HTML

<input type="checkbox" name="contact_me_by_fax_only" value="1" style="display:none !important" tabindex="-1" autocomplete="off">

这里我们有一个简单的复选框:

  • 用 CSS 隐藏。
  • 有一个不起眼但显然是假的名字。
  • 具有等效于 0 的默认值。
  • 无法通过自动完成填写
  • 无法通过Tab键导航到。(见标签索引

服务器端

在服务器端,我们要检查该值是否存在并且是否具有非 0 的值,如果存在则适当地处理它。这包括记录尝试和所有提交的字段。

在 PHP 中,它可能看起来像这样:

$honeypot = FALSE;
if (!empty($_REQUEST['contact_me_by_fax_only']) && (bool) $_REQUEST['contact_me_by_fax_only'] == TRUE) {
    $honeypot = TRUE;
    log_spambot($_REQUEST);
    # treat as spambot
} else {
    # process as normal
}

倒退

这就是日志的来源。如果您的某个用户最终被标记为垃圾邮件,您的日志将帮助您恢复任何丢失的信息。如果将来修改它们以绕过您的蜜罐,它还可以让您研究在您的站点上运行的任何机器人。

报告

许多服务允许您通过 API 或上传列表来报告已知的垃圾邮件 IP。(例如CloudFlare)请报告您发现的所有垃圾邮件程序和垃圾邮件 IP,以帮助使互联网变得更安全。

先进的

如果你真的需要打击更高级的垃圾邮件机器人,你可以做一些额外的事情:

  • 纯粹用 JS 而不是纯 CSS 隐藏蜜罐字段
  • 使用您实际上不使用的真实表单输入名称。(例如“电话”或“网站”)
  • 在蜜罐算法中包含表单验证。(大多数最终用户只会弄错 1 或 2 个字段;垃圾邮件机器人通常会弄错大部分字段)
  • 使用 CloudFlare 等自动阻止已知垃圾邮件 IP 的服务
  • 有表单超时,并防止即时发布。(在页面加载后 3 秒内提交的表单通常是垃圾邮件)
  • 防止任何 IP 每秒发布一次以上。
  • 有关更多想法,请查看此处:如何创建“核”蜜罐以捕获垃圾邮件发送者
于 2016-03-25T20:17:45.843 回答
21

我们发现这里建议的细微(虽然简单)变化对我们的联系表单蜜罐的有效性产生了巨大影响。简而言之,将隐藏字段更改为文本输入,让机器人认为它是密码。像这样的东西:

<input type="text" name="a_password" style="display:none !important" tabindex="-1" autocomplete="off">

您会注意到此模拟密码输入与复选框示例保持相同的基本准则。是的,文本输入(而不是实际的密码输入)似乎工作得很好。

这种看似微小的变化导致我们的垃圾邮件急剧下降。

于 2019-02-12T21:07:31.940 回答
12

一个真正强制不自动完成的建议:按OR
更改autocomplete="off"autocomplete="nope"autocomplete="false"

由于给定的值不是一个有效的值(autocomplete只有on或的值off),浏览器将停止尝试填充该字段。

有关更多详细信息,请参阅如何关闭表单自动完成

希望这可以帮助。

赛亚 :)

于 2017-02-13T21:47:54.927 回答