Stop Forum Spam Plugin

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.

7 лайков

Предложение по улучшению:

  • Добавить возможность помещать подозрительных пользователей в очередь на модерацию сразу после входа в систему (вместо блокировки)
  • Добавить возможность помещать подозрительных пользователей в очередь на модерацию после их первого сообщения
  • Добавить в действия очереди на модерацию опцию: «Удалить пользователя и сообщить в SFS»

Конечно, это работает только для форумов с небольшим объемом спама.

5 лайков

Привет! Большое спасибо @msinger за этот плагин. Я использую SFS уже много лет на форуме, не основанном на Discourse, и он действительно помогает.

Возможность повторно проверять новые аккаунты через X часов — отличная идея, спасибо, что добавили её!

Несколько возможных улучшений для этого плагина:

  • Можно ли сделать так, чтобы он работал с самого начала, на странице регистрации, чтобы спамеры даже не могли зарегистрироваться?
  • Можно ли реализовать настраиваемые администратором пороги, чтобы указывать, сколько совпадений в базе данных SFS по имени пользователя, электронной почте и IP-адресу необходимо для признания пользователя спамером?
  • Было бы здорово добавить кнопку для администратора, чтобы сообщать о пользователе и его постах в SFS.

Ещё раз спасибо.

1 лайк

Работает ли этот плагин с последней версией Discourse?

Я заметил, что StopForumSpam в данный момент недоступен и показывает сообщение «слишком много соединений к базе данных». Возможно, этот плагин является частью проблемы? Может ли этот плагин применять ограничение частоты запросов, если он еще этого не делает?

(И как этот плагин реагирует, если не может получить корректный ответ от сервиса?)

1 лайк

Я знаю, что вопрос был задан в декабре, но… думаю, это было стечение обстоятельств; Stop Forum Spam в целом работал и был доступен.

Этот плагин работает через асинхронные задачи, поэтому, даже если Stop Forum Spam будет недоступен, это не повлияет на работу с пользователями.

2 лайка

@msinger Я вижу, что с момента вашего последнего коммита в этот плагин прошло пять лет.

Вы думали о внесении изменений и улучшений в этот плагин, или вы уже перешли к другим проектам, и имеет смысл, чтобы кто-то сделал форк?

Спасибо!

2 лайка

В версии 2.0 я добавил новую настройку под названием Stopforumspam Minimum Entries Found. По умолчанию это значение установлено на 1. Вы можете увеличить его, чтобы изменить порог совпадений по электронной почте, имени пользователя или IP-адресу.

Кроме того, когда пользователь замалчивается, в причине теперь указывается количество совпадений.

3 лайка

Да, при условии, что они остаются в рамках первоначального проекта. Если вы планируете выйти за пределы моей первоначальной задумки, то не стесняйтесь создать форк.

3 лайка

Хотя я не могу гарантировать, что он никогда не сломается из-за агрессивного графика выпусков Discourse, он полностью функционален с последней бета-версией. В настоящее время я использую его на всех своих форумах с 3.5.0.beta2-dev.

3 лайка

Я недавно установил этот плагин, но, похоже, он ещё никого не поймал (хотя я уверен, что это случится, так как я довольно часто видел IP-адреса новых пользователей в базе stopforumspam.

Когда пост обнаруживается, он попадает в очередь на проверку?

Нет, на мой взгляд, это противоречило бы цели плагина, который представляет собой полностью автоматизированную систему блокировки подтверждённых спамеров без участия модераторов. Однако вы можете зайти в раздел /admin/users/list/silenced, и те пользователи, которые были заблокированы плагином, будут иметь причину: «Пользователь найден в StopForumSpam».

1 лайк

Отлично, я не знал об этой странице.

Похоже, плагин работает на полную!

У меня на форуме уже много лет были спамеры, и я пробовал разные способы, чтобы минимизировать действия администратора. Судя по тому, что я вижу, этот плагин справится с задачей на отлично!

2 лайка

Без ложных срабатываний?

Каждый совпавший аккаунт в stopforumspam, даже до использования этого плагина, выглядел достаточно подозрительно, чтобы забанить пользователя.

Поэтому я просто доверяю этой базе данных, потому что она кажется надежной.

2 лайка

У меня никогда не было ложных срабатываний (то есть каждый раз, когда система что-то находит, это действительно есть в базе данных SFS).

Одно важное замечание: у API есть ограничение — вы можете получить совпадение по адресу электронной почты, который не совпадает в точности с адресом. SFS идентифицирует домен как «токсичный домен», но API не сообщает об этом. Пользователи с адресами электронной почты из таких доменов будут отображаться как совпадения по e-mail, но вы не найдёте их точный адрес в базе данных SFS при поиске.

База данных создаётся усилиями сообщества, поэтому существует вероятность, что пользователь на самом деле не является спамером, но был кем-то помечен как спамер по какой-то причине. Это случается редко, но бывает (именно поэтому в SFS существует процесс обжалования).

2 лайка

До сих пор я настраивал систему так, чтобы она проверяла только совпадения адресов электронной почты, так как это наиболее уникальный идентификатор. Совпадения по IP-адресу и имени пользователя гораздо чаще оказываются ложными срабатываниями, поэтому я отключил эти проверки. Но теперь, когда порог можно настраивать, я, возможно, установлю очень высокий порог, например 30 совпадений, для IP-адресов и, возможно, для имён пользователей.

Хорошее замечание, которое стоит иметь в виду; мне потребовалось много времени, чтобы в этом разобраться. Хотя, честно говоря, эти «токсичные домены» названы вполне уместно, и любой пользователь, регистрирующийся с таким адресом, почти наверняка преследует плохие цели: спам или обход бана за повторные троллинг или преследование. К счастью, этот плагин просто блокирует пользователя, поэтому, если это каким-то образом окажется ложным срабатыванием, они всё ещё могут связаться с администрацией, если включён этот другой (на мой взгляд, обязательный) плагин:

1 лайк