有人遇到奇怪的垃圾用户攻击吗?有什么办法可以阻止?

也许垃圾邮件攻击如此普遍,以至于我们遇到的情况只是常态。

我相信我们使用了单点登录(SSO),但它仅限于我们的网站。我们未使用任何外部认证。

模式非常清晰:

  • 他们总是用随机的大小写字母字符串填充我们的“性别”字段。
  • 用户名几乎总是一个听起来像真实的名字和姓氏,后跟一串数字。
  • 使用的邮箱总是某个自定义域名,通常看起来非常奇怪,从未是知名服务商。

我们尚未调整任何垃圾邮件过滤器。我们每天可能会收到三到四个此类账号,每周可能达到十个或更多。到目前为止,我一直只是直接删除它们,以免它们有时间发帖。

有什么建议吗?

我分享一位工作人员关于如何识别垃圾账号的建议:

“经典的‘FirstLast1234’电子邮件地址格式”

这只是典型的垃圾账号手段。

也许这一条会让 AI 感到困惑?

也许吧。无论如何,我很高兴它如此。很难相信一个基于 AI 的机器人竟然不知道关于性别的下一个合乎逻辑的答案。

是的,我也遇到过这个问题,在我改为手动审核 TL0 用户发布的帖子后,问题就消失了。

我有一个自定义字段,允许注册用户选择他们的操作系统(我的社区是围绕某个应用建立的),而这些机器人账号在该字段中填写的是随机数据。

我使用了一个自定义的数据探索器查询,列出了所有操作系统值无效的用户,即该值不在自定义用户字段预定义的选项列表中。

SELECT 
  u.id, 
  u.username, 
  ucf.value AS user_field_1 
FROM 
  users AS u 
  LEFT JOIN user_custom_fields AS ucf ON u.id = ucf.user_id 
  AND ucf.name = 'user_field_1' 
WHERE 
  ucf.value IS NOT NULL 
  AND ucf.value NOT IN (
    SELECT 
      ufo.value 
    FROM 
      user_field_options AS ufo 
    WHERE 
      ufo.user_field_id = 1
  )

新注册的用户停止了吗?因为那才是我的“问题”。我们实际上已经手动审核 TL0 的帖子了。

是的,它停止了,但现在读了你们的经历,那可能只是巧合。

我还封禁了这些账户的所有邮箱和 IP。

是的,我也一直在封禁相关的 IP 和邮箱。只有一次是两个账户使用了同一个 IP,但说实话,我后来就不再特意去检查了。

我有点担心封禁了这么多 IP,会不会开始误伤真实用户。也许我还没有完全理解可能的 IP 数量有多少,以及合法用户被误封的可能性有多大。

我在封禁之前,是否应该每次都先检查一下该 IP 是否为共享 IP?

是的,在注册时添加自定义字段通常能拦截这类垃圾信息,那个数据探索器查询是现在尝试拦截的好方法……但我觉得我们应该提供某种自动化方案,让这变得更简单。

我们在 Meta 已经这样做了多年,新账号注册数量一直相当稳定。

我还在网站上提供了电子邮件地址,供我的应用用户直接联系我。因此,如果有真实用户无法注册,我大概会收到反馈(但目前还没有)。

不确定你是否应该这样做,但我没有这么做::see_no_evil_monkey:

哦不!我认为这是一个合理的担忧——世界上许多地方并没有大量的 IP 地址,而且 IP 地址被共享的情况比以往任何时候都更为常见。

嗯,我认为这并不能保证不会让许多人无法使用服务。

我认为,屏蔽垃圾邮件发送者的 IP 地址这一策略源自美国,那是个人恶意行为和通过有线网络接入互联网的时期。我认为这在当下已非常不合适。

将 IP 地址与维护良好的黑名单进行比对,或将地址的 ASN 与不太可能的来源黑名单(例如云服务商)进行比对,可能会有一定帮助。但如果您希望允许人们使用 VPN 注册,仅基于这些理由进行屏蔽仍然不够妥当。

当然,这可能会给 VPN 带来麻烦,但 VPN 也是滥用行为的主要来源之一……因此,完全不对它们采取行动也是一种负担。理想情况下,我们应该建立某种 IP 信誉系统,这样就不必采取非黑即白的做法。

可以通过 Cloudflare 解决。使用日志浏览器,然后根据 WAF 设置和自定义规则相应地进行拦截和质询:

Discourse 官方的 hCaptcha 插件 在此方面能提供巨大帮助。它专门用于缓解机器人注册问题。

(我个人也非常希望看到 Discourse 支持 Cloudflare Turnstile。鉴于 Turnstile 的免费层级包含无摩擦的非交互模式,而 hCaptcha 实现类似功能则需要升级到每月 99 美元的“专业版”定价——这对于自托管用户来说简直是荒谬至极。)

如果作为一个潜在新用户遇到这种情况,我可能直接就放弃了。

我通常甚至不会删除垃圾用户,而是永久封禁他们。这样我可以更方便地从他们那里收集信息以分析模式,从而在战术变化时迅速做出反应。

如果我封禁某个 IP,他们只需换个新 IP 即可。如果我不封禁,其中一些人会用同一个 IP 回来,这样我就能迅速应对。

同时,我也有很多新的垃圾发送者,他们的注册 IP 和最后使用的 IP 并不相同。

我通过 VPN 接收到了大量合法的使用请求,因此如果继续随意封禁那些实际上并非垃圾发送者的随机 IP,反而会导致随机的失败。

我认为我们应该提供一个选项:在删除垃圾账户时,可以封禁邮箱但封禁 IP。封禁 IP 最终会成为一种无法直接衡量的隐性成本。我觉得这非常:见不得光的猴子:。

同意!

嗯,也许我应该试试这样做。自从最近遭遇一波攻击以来,我启用了“新用户需审核”模式,以我目前的规模来说这完全 manageable,并且允许我(或其他版主)在 StopForumSpam 上进行检查。

我也遇到了同样的问题,这是一个自托管实例,注册数量正在上升。最初只是偶尔出现,每周 1 到 2 个注册。但这周有 10 个注册,仅昨天就有 5 个。

其特征是“代词”(Pronoun)设置中为随机字符串,以及之前提到的姓名中存在的模式。

我对 IP 地址执行了 whois 查询,发现超过 90% 的 IP 来自美国的两家云服务商。因此,我开始封锁网络段而不是单个 IP。在封锁云服务商网络段时,误封普通用户的风险非常低。大多数是 /24 网段,有些是 /23 或 /22 网段。

我经常收到注册邮件的退信,因为该邮箱地址不存在。这些地址中也有模式。它们的共同点是子域名,其域名部分以单个字母的子域名开头,例如 ...@a.example.com。我目前见过字母 abce
如果“被封锁的邮件域名”(Blocked email domains)功能支持正则表达式,这将是一个很好的封锁属性。一个简单的正则表达式 @[a-z]\.* 就可以阻止这些尝试。

我最近看到大量这类内容。一开始我还以为自己终于搞懂了 SEO :sweat_smile:

但随后我想起了 OpenClaw :sweat_smile:

幸好现在有新的批量用户管理功能! :folded_hands:

补充一下……几周前我们开始使用 hCaptcha,这完全消除了我在原帖中提到的那类特定垃圾用户。也许总体上的垃圾信息也减少了,而注册总数并没有出现明显下降。

所以,不妨试试 hCaptcha。

几天前,我为申请者添加了一个必填文本字段(一个名为“兴趣”的用户字段),以帮助人工审核员批准他们的申请(提示语为:“请写几句话,帮助人工审核员决定是否批准您的账户。”)

现在下结论还为时过早,但有两个可疑账户在其中填写了类似随机密码的文本,这使得拒绝它们变得很容易。

我希望我的版主们能协助处理账户审核,他们确实在这样做,但他们无法查看电子邮件地址或 IP 地址,这有点限制。Stopforumspam 一直是一个很有用的资源。

你是如何配置 moderators_view_ipsmoderators_view_emails 站点设置的?