Stop Forum Spam 插件

Overview

The Stop Forum Spam plugin (unofficial) can help weed out human spammers who are able to bypass Discourse’s built-in spam tools (thanks to their awesome human powers). Right after a new user signs up on your forum (before they have time to post), this plugin will check the user’s email address, forum username, and/or IP address (depending on your plugin settings) against the Stop Forum Spam database. If the user is found in this database of known spammers, their user account will be immediately auto silenced in Discourse.

Note: If needed, you can unsilence the user in the UsersSilenced section of the Discourse Admin.


Installation

Follow these instructions to install this plugin in your Discourse installation.

Note: This plugin’s git clone url is GitHub - singerscreations/discourse-stopforumspam.


Configuration

After installing this plugin in Discourse, you’ll be able to configure the following settings in the SettingsPlugins section of the Discourse Admin:

  • stopforumspam enabled: Enable the Stop Forum Spam plugin. This will auto silence new users who are in the Stop Forum Spam database of known spammers.

  • stopforumspam check email: Silence new user if email is found in Stop Forum Spam database.

  • stopforumspam check username: Silence new user if username is found in Stop Forum Spam database.

  • stopforumspam check ip: Silence new user if IP is found in Stop Forum Spam database.

  • stopforumspam minimum entries found: User must appear in the Stop Forum Spam database at least this number of times.

  • stopforumspam recheck users after hours: Number of hours to wait before rechecking new users a second time to make sure they are still not in the Stop Forum Spam database. Set to 0 to disable recheck.

Note: If you have more than one of these check settings enabled, the user will be deemed a spammer as soon as one of them is found in the Stop Forum Spam database.


GitHub Repository


Questions/Comments/Suggestions

While I don’t mind if you reach out to me directly for help, it would be benefit everyone here if you’d post your questions, comments, and/or suggestions below.

33 个赞

I added a new stopforumspam recheck users after hours plugin setting to allow users to be rechecked again after X hours. This will allow more spammers to be cleaned up later when they are not found in the Stop Forum Spam database on the first check.

1 个赞

This is a great idea — however, I would have expected that spammers change their email address each new time they spam so I’m surprised that checking such a database is effective.

2 个赞

It’s very effective, but it’s certainly not foolproof.

6 个赞

An improvement proposal:

  • Add option to put suspicious users in the review queue directly after login (instead of silencing)
  • Add option to put suspicious users in the review queue after their first posting
  • Add option to the review queue actions: “Delete user and report to SFS”

Certainly works only for forums with little spam volume.

5 个赞

您好,非常感谢 @msinger 的这个插件,我已经在非 Discourse 论坛上使用了 SFS 多年,它确实很有帮助。

重新检查新账户 X 小时后的选项是一个绝妙的主意,感谢添加!

这个插件的一些可能的改进:

  • 是否可以从一开始就在注册页面使其生效,这样垃圾邮件发送者甚至无法注册?
  • 是否可以实现管理员可配置的阈值,以指定 SFS 数据库中用户名、电子邮件和 IP 的命中次数,才能将其视为垃圾邮件发送者?
  • 添加一个管理员按钮,将用户及其帖子报告给 SFS 会很不错。

再次感谢

1 个赞

此插件是否与最新版本的 discourse 兼容?

我注意到 StopForumSpam 目前无法访问,显示“数据库连接过多”——这个插件是否是问题的一部分?如果这个插件还没有应用速率限制,是否可以应用?

(另外,如果这个插件无法从服务中获得良好响应,它会如何反应?)

1 个赞

我知道这个问题是十二月份提出的,但是……我认为那只是个巧合;Stop Forum Spam 一直以来都运行良好。

这个插件通过异步任务工作,因此即使 Stop Forum Spam 宕机也不会影响用户体验。

2 个赞

@msinger 我看到您上次提交此插件已是五年前。

您是否考虑过对此插件进行更改和改进,或者您是否已不再维护,可以由他人分叉?

谢谢!

2 个赞

我在 2.0 版本中引入了一个名为“Stopforumspam 最小发现条目数”的新设置。默认情况下,此设置设置为 1。您可以增加该值以根据电子邮件、用户名或 IP 地址调整匹配项的阈值。

此外,当用户被静音时,原因现在包括出现次数。

3 个赞

我有,只要它们保持在原始项目的范围内。如果您想扩展到我最初的设想之外,那么可以随意创建一个分叉(fork)。

3 个赞

虽然我不能保证它永远不会因为 Discourse 激进的发布计划而出现问题,但它与最新的测试版完全兼容。我目前在我的所有论坛上都运行着它,版本是 3.5.0.beta2-dev

3 个赞

我最近安装了这个插件,但我不认为它已经捕捉到任何人(我确信它会捕捉到,因为我经常看到一些新用户的 IP 出现在 stopforumspam 上)。

当帖子被检测到时,它会进入审核队列吗?

[引述=“Coin-coin le Canapin, 第15帖, 主题:121037, 用户名:Canapin”]
当检测到一篇帖子时,它会进入审核队列吗?
[/引述]

不会,在我看来那样基本上会削弱插件的目的,插件本质上是一个完全自动化的系统,用于阻止确认的垃圾信息发帖者,没有任何审核时间的参与。但你可以在 /admin/users/list/silenced 查看被静音的用户,插件静音的用户会显示原因为“用户在 StopForumSpam 中被发现”。

1 个赞

太棒了,我不知道有这个页面。

看来插件工作很努力!

多年来,我的论坛上有很多垃圾邮件发送者,我尝试了各种方法来尽量减少版主的管理操作。从我目前看到的情况来看,我相信这个插件会做得非常出色!

2 个赞

没有误报?

在 stopforumspam 上匹配到的每个账户,即使在此插件使用之前,看起来都足够可疑,可以将其封禁。

所以我只信任这个数据库,因为它看起来是可靠的。

2 个赞

我从未遇到过它给出假阳性(也就是说,每次它找到某些东西,都在SFS数据库中)。

需要注意的是,API有一个限制,你可以得到一个与电子邮件地址不完全匹配的匹配——SFS会将域名识别为“有害域名”,但API不会告诉你这一点。来自这些域名之一的用户的电子邮件地址会显示为电子邮件匹配,但你在搜索时不会在SFS数据库中找到他们的确切电子邮件。

该数据库是社区的共同努力,因此有可能用户实际上并不是垃圾邮件发送者,而是被别人误判为垃圾邮件发送者。这种情况很少见,但确实会发生(这也是为什么SFS有一个“申诉”流程)。

2 个赞

到目前为止,我将其配置为仅检查电子邮件地址匹配项,这是最独特的标识符。IP 地址和用户名匹配项更有可能是误报,因此我禁用了这些检查。但现在阈值是可配置的,我可能会为 IP 地址和用户名设置一个非常高的阈值,比如 30 个匹配项。

这是一个需要牢记的好点,我花了很长时间才弄清楚。尽管说实话,那些“有毒域”名副其实,任何使用这些电子邮件注册的用户几乎肯定有不良意图,例如发送垃圾邮件或逃避因重复恶意骚扰而被禁止。幸运的是,这个插件只是让用户静默,所以如果他们是误报,他们仍然可以通过启用这个(在我看来必不可少的)插件联系工作人员:

1 个赞