从未被查看或激活的新用户

我正在追踪我们 Discourse 上涌入的大量垃圾账号。有大量(数百个!)近期创建的账号从未被“查看过”(Seen),也尚未“激活”(Activated)——这是怎么回事?他们是使用某种 API 创建账号吗?还是创建了账号但从未登录?这似乎是一个_非常强烈_的信号,表明这些账号是垃圾账号,但我不知道这具体意味着什么,也不知道我能否据此进行筛选并批量删除它们。

有没有界面可以查找并清除此类未查看和/或未激活的账号?或许这可以在经过一段较长的延迟后自动执行?

3 个赞

看起来有一种方法,我相信在若干天后会自动对未激活的账户执行此操作,该天数可以调整为更长或更短:

3 个赞

如果这是一波近期出现的集中注册,我猜大概是某种机器人……如今互联网上的大部分服务都会遭受频繁的机器人攻击……这些账户在激活之前都是无效的,所以我也不明白为什么有人要创建后又放弃它们。

有人创建了账户,但从未验证邮箱,因此无法登录。如果账户未激活,就永远不会产生 seen 记录。

Discourse 本质上就是一个大型 API,因此有人可以直接访问界面所使用的相同端点来创建账户。当然有可能实现自动化,不过想要快速创建大量账户,就得绕过速率限制。

在 admin/users/list/new 页面有一个“未激活”筛选器

从这里你可以点击表格头部头像上方的图标进入批量选择模式。如有需要,你可以通过这种方式删除账户。

默认情况下,Discourse 会在 14 天后自动删除这些账户,前提是他们没有任何帖子,相关站点设置为 purge_unactivated_users_grace_period_days。

如果你选中其中一个用户并进入其管理页面,还可以使用“IP 查询”按钮来查看与同一 IP 关联的账户。如果有多个账户关联,你会得到删除它们的选项:

你其实无需手动操作,可以依赖自动清理功能……但如果账户数量很多,或者有些账户被激活后用于发布垃圾内容,也许值得留意一下。

有没有什么规律?相同的地点?相同的 IP?相同的邮箱域名?如果发现某种特征,可以考虑增加更多防护措施。

6 个赞

谢谢 Kris!这对我来说不幸地也非常有帮助。我们刚也经历了一波明显是垃圾信息的新用户激增。自10月16日以来,共有268个用户从同一个IP地址注册,用户名都是“b”加上一串随机数字(如 b123456789)。

真不酷

1 个赞

我们也遇到了同样的情况……最近有 266 个账号来自 89.124.71.104

当我试图屏蔽其中一个账号时,图形界面允许我手动额外选择 10 个用户进行挂起,但并非全部。如果能提供一个“全选”按钮,而不是必须选择 10 个并重复 25 次,那就太好了。

除非已经有更好的批量挂起方法?

2 个赞

另一种解决方案可能是允许在此处“并删除所有来自同一 IP 的未确认账户”

2 个赞

算了……是我眼花了。有一个“全选”选项,可以一次删除100个用户。

我只是没看到显示用户旁边 [ ] 复选框的按钮。

4 个赞

说来好笑,那也是我背后的IP地址。

2 个赞

这些温和的浪潮是否可能来自与 Mastodon 刚才发生的情况类似的 OAuth 应用小玩意儿[1]?症状非常相似。


  1. 免责声明:显然,我完全不知道 OAuth 应用是如何工作的 ↩︎

该用户也进行了报告。是否有理由预先将所有客户访问该 IP 的请求屏蔽?

没错,这正是我提出这个问题的原因!这里至少有 193 个。我们还遇到另外一波由几十个其他机器人账号组成的群体,它们达到 TL1 级别后,每个账号都发送了 20 条私信——正是在寻找更多此类账号时,我注意到了这些 b123456789 账号。

1 个赞

更新:即使封禁了该 IP,我仍看到几个新注册用户使用了相同的用户名模式,但来自不同的 IP。是时候考虑 CAPTCHA 解决方案了 :melting_face:

2 个赞

这是另一类垃圾账号——昨天夜里突然注册了一百个新账号,它们的用户名/阅读模式完全一致:

与未激活的 bXXXX 账号不同,这些账号全部来自不同的 IPv6 地址。

我正在尝试使用 reCAPTCHA v2,因为它是免费的。我只用几分钟就完成设置。

创建你的站点密钥和秘密密钥,并在此处更新某些值:/admin/site_settings/category/discourse_captcha?filter=recaptcha

1 个赞

我建议你们留意那些账户。过去几天我们遭遇了好几波这种攻击。命名模式相同,且来自少数几个 IP 地址。

他们会迅速升到 TL1(["阅读"了209篇帖子,用时11分钟……]),以便向随机用户发送垃圾私信。

它发送的是什么类型的消息?有什么规律吗 @mbauman @Danika_Dakika ?

显然,可以在不到一分钟内阅读 50 篇以上的帖子,而无需查看任何主题,甚至不会被看到?

4 个赞

是的,每个账号都会获得 TL1(信任等级 1),然后向主题作者发送 20 条私信(默认每日限制),消息内容如下:

Hi @mbauman

Saw your thread on “[主题标题]” — [销售宣传和链接]

我们已经收紧了私信限制,并试图更有针对性地应对。这些账号似乎都使用了大量不同的临时电子邮箱域名;我还在考虑转向更严格的邮箱主机白名单(从默认的黑名单机制改为白名单机制)。

2 个赞

你可以设置一些关键词过滤器和/或工作流程,来检查私信内容并将其标记出来。

嗯,你有没有把 TL1 的门槛调低?

通过 API 调用可以在不进入主题的情况下像这样填充“已读帖子”,但如果 tl1_requires_topics_entered 保持默认的 5,那么这些账户理论上不应该能达到 TL1。