更好的蜜罐实现(表单反垃圾邮件)

9 浏览
0 Comments

更好的蜜罐实现(表单反垃圾邮件)

我们如何清除我们网站上的这些垃圾邮件机器人?\n每个网站都会在某个时候成为垃圾邮件机器人的受害者。你如何处理它会影响到你的客户,并且大多数解决方案可能会阻止一些人填写你的表格。\n这就是蜜罐技术的用处所在。它允许你忽略垃圾邮件机器人,而不需要用户填写验证码或跳过其他步骤来填写表格。\n这篇文章纯粹是为了帮助其他人在他们的网站表单上实现蜜罐陷阱。\n


\n

更新:

\n自从在我所有客户的网站上实施了下面的蜜罐之后,我们成功地阻止了99.5%(数千个提交)的所有垃圾邮件。这是在没有使用\"高级\"部分提到的技术的情况下,这些技术将很快被实施。

0
0 Comments

在阅读上述内容后,我们可以得出以下的原因和解决方法:

原因:

- 提到了使用autocomplete="off"来防止自动填充表单的建议。

- 提到了将autocomplete="off"更改为autocomplete="nope"autocomplete="false"的建议。

- 提到了autocomplete属性的合法值只能是onoff

- 提到了浏览器会尝试填充字段的行为会停止。

解决方法:

- 将autocomplete="off"更改为autocomplete="nope"autocomplete="false"

- 或者可以使用autocomplete="new-password",因为密码管理器通常会忽略autocomplete=off

根据以上内容,我们可以整理成以下文章:

标题:更好的蜜罐实现(反垃圾邮件)

在网页开发中,经常会遇到防止自动填充表单的需求。通常我们会使用autocomplete="off"来实现此功能。然而,有用户提出了更好的方法来实现这一目标。

他建议将autocomplete="off"更改为autocomplete="nope"autocomplete="false"。由于autocomplete属性的合法值只能是onoff,浏览器会停止尝试填充字段。

此外,还有一种方法是使用autocomplete="new-password"来实现防止自动填充表单的效果。因为密码管理器通常会忽略autocomplete=off,所以这种方法可以在某些情况下更有效。

希望以上的建议能对你有所帮助!

原文链接:如何关闭表单自动填充

SYA 🙂

0
0 Comments

Better Honeypot Implementation (Form Anti-Spam)

我们发现,在这里稍微(尽管简单)改变建议,可以极大地提高我们联系表单蜜罐的效果。简而言之,将隐藏字段更改为文本输入,并让机器人认为它是一个密码。就像这样:

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

你会注意到,这个模拟密码输入与复选框示例遵循相同的基本指南。是的,文本输入(而不是实际的密码输入)似乎工作得很好。

这个看似微小的改变导致我们的垃圾邮件大大减少。

你能详细说明一下为什么这样更有效吗?期望是他们仍然会填写它吗?还是他们会认为它是一个密码字段并且没有提交而离开?为什么不使用密码字段而使用文本字段?

该字段的目的是让机器人填写它,从而告诉我们这个请求是垃圾邮件。文本字段蜜罐的想法是使它对机器人有吸引力(而密码字段则不那么吸引人)。也就是说,因为我不知道机器人是如何编写的,所以我无法具体说明它为什么有效。如果你自己进行一些测试,我会对你的结果感兴趣。

到目前为止,运行了三个蜜罐,其中一个是type="password"版本,机器人要么填写全部三个要么根本不填写...所以它们在这一点上看起来是相等的。没有误报。

0
0 Comments

Better Honeypot Implementation (Form Anti-Spam)

传统的反垃圾邮件解决方案,如验证码或人机验证,可能对用户产生不必要的麻烦。这里介绍了一种更好的反垃圾邮件实现方法,即使用蜜罐技术(Honeypot)。通过在表单中添加一个只有垃圾邮件机器人能看见的隐藏字段,可以识别垃圾邮件机器人并将其区分为真正的用户。

概念

通过在表单中添加一个只有垃圾邮件机器人能看见的隐藏字段,你可以诱使他们暴露自己是垃圾邮件机器人而不是真正的用户。

HTML


这里有一个简单的复选框,具有以下特点:

- 使用CSS隐藏。

- 有一个模糊但显然是假的名称。

- 有一个默认值等于0。

- 无法通过自动填充来填写。

- 无法通过Tab键导航到它。(参见[tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex))

服务器端

在服务器端,我们要检查该字段是否存在,并且值不为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);
    # 将其视为垃圾邮件机器人
} else {
    # 正常处理
}

备用方案

这就是日志的作用。如果你的用户被错误标记为垃圾邮件,你的日志将帮助你恢复任何丢失的信息。它还可以让你研究在你的网站上运行的任何机器人,以防它们在将来修改以规避你的蜜罐。

报告

许多服务允许你通过API或上传列表报告已知的垃圾邮件机器人IP地址(例如[CloudFlare](https://blog.cloudflare.com/using-the-cloudflare-api-to-report-spam-on-yo/))。请通过报告你发现的所有垃圾邮件机器人和垃圾邮件IP地址,帮助使互联网更安全。

高级功能

如果你真的需要对抗更高级的垃圾邮件机器人,还有一些其他的方法:

- 使用JS而不是纯CSS隐藏蜜罐字段。

- 使用实际的表单输入名称,但你实际上并不使用它们(例如"phone"或"website")。

- 在蜜罐算法中包括表单验证(大多数真实用户只会填写1或2个字段错误;垃圾邮件机器人通常会填写大多数字段错误)。

- 使用像CloudFlare这样自动阻止已知垃圾邮件IP的服务。

- 设置表单超时,并防止即时提交(在页面加载后的3秒内提交的表单通常是垃圾邮件)。

- 防止同一个IP一秒钟内多次提交。

- 查看这里获取更多想法:[How to create a "Nuclear" honeypot to catch form spammers](https://stackoverflow.com/questions/26452716)

希望通过使用蜜罐技术,我们可以更好地应对垃圾邮件问题,并提供更好的用户体验。同时,通过报告垃圾邮件机器人和垃圾邮件IP地址,我们可以共同努力使互联网更加安全。

0