防止电子邮件扫描器激活“取消订阅”链接的策略

Pēt*_*une 13 email spam unsubscribe office365

我想在我的服务发送的电子邮件的页脚中提供一个单击“取消订阅”链接。

显然,许多垃圾邮件扫描程序会扫描电子邮件,并会按照电子邮件中的任何链接扫描其内容中的恶意软件。到目前为止我使用的解决方法:

  • 如果“取消订阅”页面是通过 HTTP GET 请求的,它会呈现一个简单的确认表单和一些在页面加载时提交表单的 JS
  • 如果“取消订阅”页面是通过 HTTP POST 请求的,那么我们取消订阅用户

这样,用户通常只需要单击表单,他们就会收到“您已取消订阅”的消息。如果他们禁用了 JS,他们仍然可以手动提交确认表。

现在的问题是,像Office365的ATP这样的扫描器会打开页面,并在其中执行JS。通过执行 JS,他们提交表单并导致用户自动取消订阅。

我已经考虑向自动提交 JS 逻辑添加检查:

  • 不要为特定的用户代理自动提交
  • 不要自动提交特定的客户端 IP 范围
  • 触发鼠标移动事件的自动提交

但这些似乎都是脆弱的方法,充其量是黑客攻击,随着电子邮件扫描仪改变他们的策略,这些方法必然会被破坏。

我相信这个问题在我之前有很多人。除了放弃单击功能之外,是否有已知的合理解决方法?

附注。我已经添加了对RFC 8058 的支持,但用户仍然会点击页脚中的链接。

Ada*_*atz 9

这是M³AAWG(消息、恶意软件和移动反滥用工作组)正在进行的辩论主题。这是一团糟,没有简单的解决方案。听起来您所做的一切都是正确的,但一些反垃圾邮件系统有点过于激进。

最大的问题是,您可以做的任何事情也可能被滥用职权的营销人员或垃圾邮件发送者完成。

我听过的最好的建议就是在行动上设置一个计时器。为发送后 5 分钟内取消订阅的用户添加验证码,然后删除验证码。(做不是为你的RFC 8058列表的退订,信息链接实现这一点。)

我的下一个最喜欢的建议是在消息中添加一个金丝雀链接。这对人类读者来说应该是不可见的。如果被跟踪,它会从该 IP 恢复最近的点击活动,并在一段时间内禁止该 IP 进行操作触发器。

我也喜欢你的想法,只要确保如果 Javascript 被禁用,用户仍然可以在点击确认按钮后取消订阅。

 

我的一部分(警告,我是一名反垃圾邮件研究人员)想要这些误报。希望这会告诉我的同龄人,他们的工作做得很糟糕,而且这些升级会继续发生在他们身上。从您的角度来看,您可以推卸责任(尽管在此过程中您会失去一些订阅者)。

垃圾邮件检测系统必须小心避免订阅管理链接(至少在坏人开始将他们的有效负载伪装成 unusbscribe 链接之前)。