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 Users → Silenced section of the Discourse Admin.
Installation
Follow these instructions to install this plugin in your Discourse installation.
After installing this plugin in Discourse, you’ll be able to configure the following settings in the Settings → Plugins 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.
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.
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.
Привет! Большое спасибо @msinger за этот плагин. Я использую SFS уже много лет на форуме, не основанном на Discourse, и он действительно помогает.
Возможность повторно проверять новые аккаунты через X часов — отличная идея, спасибо, что добавили её!
Несколько возможных улучшений для этого плагина:
Можно ли сделать так, чтобы он работал с самого начала, на странице регистрации, чтобы спамеры даже не могли зарегистрироваться?
Можно ли реализовать настраиваемые администратором пороги, чтобы указывать, сколько совпадений в базе данных SFS по имени пользователя, электронной почте и IP-адресу необходимо для признания пользователя спамером?
Было бы здорово добавить кнопку для администратора, чтобы сообщать о пользователе и его постах в SFS.
Я заметил, что StopForumSpam в данный момент недоступен и показывает сообщение «слишком много соединений к базе данных». Возможно, этот плагин является частью проблемы? Может ли этот плагин применять ограничение частоты запросов, если он еще этого не делает?
(И как этот плагин реагирует, если не может получить корректный ответ от сервиса?)
В версии 2.0 я добавил новую настройку под названием Stopforumspam Minimum Entries Found. По умолчанию это значение установлено на 1. Вы можете увеличить его, чтобы изменить порог совпадений по электронной почте, имени пользователя или IP-адресу.
Кроме того, когда пользователь замалчивается, в причине теперь указывается количество совпадений.
Да, при условии, что они остаются в рамках первоначального проекта. Если вы планируете выйти за пределы моей первоначальной задумки, то не стесняйтесь создать форк.
Хотя я не могу гарантировать, что он никогда не сломается из-за агрессивного графика выпусков Discourse, он полностью функционален с последней бета-версией. В настоящее время я использую его на всех своих форумах с 3.5.0.beta2-dev.
Я недавно установил этот плагин, но, похоже, он ещё никого не поймал (хотя я уверен, что это случится, так как я довольно часто видел IP-адреса новых пользователей в базе stopforumspam.
Когда пост обнаруживается, он попадает в очередь на проверку?
Нет, на мой взгляд, это противоречило бы цели плагина, который представляет собой полностью автоматизированную систему блокировки подтверждённых спамеров без участия модераторов. Однако вы можете зайти в раздел /admin/users/list/silenced, и те пользователи, которые были заблокированы плагином, будут иметь причину: «Пользователь найден в StopForumSpam».
У меня на форуме уже много лет были спамеры, и я пробовал разные способы, чтобы минимизировать действия администратора. Судя по тому, что я вижу, этот плагин справится с задачей на отлично!
У меня никогда не было ложных срабатываний (то есть каждый раз, когда система что-то находит, это действительно есть в базе данных SFS).
Одно важное замечание: у API есть ограничение — вы можете получить совпадение по адресу электронной почты, который не совпадает в точности с адресом. SFS идентифицирует домен как «токсичный домен», но API не сообщает об этом. Пользователи с адресами электронной почты из таких доменов будут отображаться как совпадения по e-mail, но вы не найдёте их точный адрес в базе данных SFS при поиске.
База данных создаётся усилиями сообщества, поэтому существует вероятность, что пользователь на самом деле не является спамером, но был кем-то помечен как спамер по какой-то причине. Это случается редко, но бывает (именно поэтому в SFS существует процесс обжалования).
До сих пор я настраивал систему так, чтобы она проверяла только совпадения адресов электронной почты, так как это наиболее уникальный идентификатор. Совпадения по IP-адресу и имени пользователя гораздо чаще оказываются ложными срабатываниями, поэтому я отключил эти проверки. Но теперь, когда порог можно настраивать, я, возможно, установлю очень высокий порог, например 30 совпадений, для IP-адресов и, возможно, для имён пользователей.
Хорошее замечание, которое стоит иметь в виду; мне потребовалось много времени, чтобы в этом разобраться. Хотя, честно говоря, эти «токсичные домены» названы вполне уместно, и любой пользователь, регистрирующийся с таким адресом, почти наверняка преследует плохие цели: спам или обход бана за повторные троллинг или преследование. К счастью, этот плагин просто блокирует пользователя, поэтому, если это каким-то образом окажется ложным срабатыванием, они всё ещё могут связаться с администрацией, если включён этот другой (на мой взгляд, обязательный) плагин: