通过电子邮件页脚进行无条件取消订阅

拒绝服务攻击

image

我正在测试论坛的“通过电子邮件回复”功能,发现发布的回复中包含了 Gmail 发送的完整引用消息。虽然该内容被自动隐藏的“…”遮挡,但仍然包含了“通过电子邮件取消订阅”的页脚文本和取消订阅链接,这显然是一个拒绝服务安全漏洞。

@codinghorror 建议关闭该功能作为解决方案,因此我关闭了“通过电子邮件页脚取消订阅”选项。该选项原本是为了用户便利和声誉管理而开启的,但我仍然收到带有页脚取消订阅链接的电子邮件。

我运行的 Discourse 版本为 2.6.0.beta2 1acb2f752bd9075472cd4e8d1b14196e6289f51b。

1 个赞

您正在使用哪家邮件服务提供商?许多服务商坚持在邮件中插入他们自己的退订链接。您是否已确认显示的链接指向您的实例,而不是那些邮件服务商?

1 个赞

你可以通过禁用“始终显示修剪后的内容”站点设置来关闭此功能。作为管理员,你仍然可以通过点击通过电子邮件创建的帖子右上角的信封图标来查看完整邮件。

2 个赞

抱歉,我把事情搞混了。@codinghorror 曾描述那是解决方案,但它并没有完全移除页脚中的退订键,而只是(正如帮助文本所指出的那样)将 URL 协议在 mailtohttps 之间切换,无论哪种情况都会暴露退订键。

为了进一步说明,我在另一台系统上使用自己的 sendmail 服务器,该服务器绝对没有配置为添加任何链接或其他内容。此外,实际的链接是由 Discourse 生成的,格式为 https://${myforum}/email/unsubscribe/${uniqueId},这与由其他服务器生成的内容不匹配。

现在,我在非管理员用户之间进行了测试,发现该链接需要身份验证,所以保留它只是显得难看,浪费数据库空间,而且绝不是 DoS 攻击:sweat_smile:

不是在抱怨它被隐藏了。我是在抱怨它存在(即使是被隐藏的)。

我一直使用这个设置,据我所知,它在站点历史中从未改变过:

image

我点击帖子中的省略号图标来查看引用的文本。

我是否漏掉了某个配置,可以完全从回复中移除末尾的引用部分?我不希望开启“通过邮件回复”功能的主要原因,正是因为它会在论坛中注入大量引用噪音。这使得“懒惰”地使用便捷的邮件回复功能降低了论坛的价值。懒惰是程序员的主要美德之一,我并不是在贬低懒惰!