阻止垃圾邮件发送者。<random>.domain 注册尝试

我们最近收到了大量注册尝试,其电子邮件地址类似于 @services.cn,这导致我们的 MTA 队列被无法送达的邮件填满。

我的理解是,无法使用通配符阻止域名(如 Use of an asterisk in blocked email domains prevents registration from any email address - #7 by selase 所述)。

是否有其他方法可以避免此类攻击?

Discourse 不支持在阻止的电子邮件域名列表中使用通配符,因此无法直接阻止 @services.cn 这样的整个域名模式。但是,您可以采取多种措施来减少或阻止这些垃圾注册攻击:

  1. 减少“每次注册 IP 的新帐户数”
    将此设置降低到 1 或其他较低的数字,以限制可以从同一 IP 地址创建的新帐户数量。这有助于在攻击期间防止来自单个 IP 的批量注册,并且非常有效。
  2. 在注册时启用 hCaptcha
    通过启用 Discourse hCaptcha 插件,在您的注册表单中添加一个验证码挑战。这会增加机器人和自动注册的难度,并且在所有托管计划中都可用。
  3. 手动阻止已知的恶意域名
    虽然不支持通配符,但您可以将有问题的域名明确添加到“阻止的电子邮件域名”列表中。
  4. 要求批准新用户
    暂时启用“必须批准用户”设置。这将把所有新注册置于审核队列中以供手动批准。
2 个赞

桑德罗,您的问题解决了吗?

我们在 postfix 层面阻止了这些地址。

1 个赞

那是个明智之举!哪个通配符奏效了?

我想知道为什么这不起作用?也许应该支持通配符,尽管我能想象这很容易配置错误,导致您的网站无法使用!

1 个赞

我通过邮件回复了,但在这里看不到我的回复,现在没时间去查找了,而且网页界面不允许我只输入预格式化文本(我讨厌它!),所以你只能猜了 :slight_smile:

你说无法输入预格式化文本是什么意思?

strk 说通配符是/.*@service\\..*\\.cn/

1 个赞

欢迎来到 Meta,@lnicola:sunflower:

@strk 也许您不熟悉 Discourse 中预格式化文本的工作方式。有多种方法可以做到这一点,一旦您学会了,它就非常强大。请参阅:Posting code or preformatted text

1 个赞

@tobiaseigen 不过,有一个小 bug,如果我将该正则表达式复制为文本并粘贴到 Discourse 中,它会被篡改(mangled)为 /.@service...cn/(反斜杠会丢失)。

1 个赞

我们在这里跑题了! :rofl:

你看到的不是 bug,而是预期的 markdown 行为。文本周围的两个星号会将文本显示为斜体。因为它包含一个 @,所以它会显示为一个无效的 @username。一旦你将正则表达式放在反引号中,它就会显示为预格式化文本:

斜体带用户名:/.@service\..\.cn/
预格式化文本:/.*@service\\..*\\.cn/

对我来说不起作用:

  1. /.*@service\\..*\\.cn/ 粘贴到纯文本编辑器中,然后将其复制回来
  2. 在 Discourse 中打开反引号,粘贴,您会得到 /.@service...cn/
  3. 在反引号中以纯文本形式粘贴(Ctrl-Shift-V),您仍然会得到 /.@service...cn/
  4. 如果您从上面的评论中复制 HTML,粘贴效果很好

是的,我能够复现您描述的问题,使用的是富文本编辑器。请先尝试切换到 markdown 编辑器,这样就可以正常工作了。不确定是否能对此进行修复。

1 个赞

此主题在上次回复后 30 天自动关闭。不再允许回复。