Из-за конфигурации моего сайта я не могу легко удалять спамеров

Итак, сейчас у меня узкое место при удалении спам-аккаунтов и их постов.

Мне приходится вручную удалять все посты пользователя перед удалением самого аккаунта, ждать завершения процесса, пока открыт браузер, и только потом удалять пользователя.

Я могу обрабатывать только 2–3 аккаунта одновременно, даже если на сервере установлено 16 современных процессоров Xeon, иначе возникает ошибка. На каждый аккаунт уходит несколько минут. В настоящее время это очень утомительный и медленный процесс.

По моему мнению, лучше всего добавить опцию «Удалить спамера / Уничтожить пользователя», которая не требовала бы предварительного удаления всех постов. Тогда система бы ставила задачи в очередь и обрабатывала их в фоновом режиме (удаление всех постов и удаление пользователя). Так модерация могла бы выполняться быстро, а обработка происходила бы в фоне без перегрузки системы.

Другой вариант — позволять удалять пользователя до удаления его постов, а затем запускать периодическую задачу (cron), которая искала бы и удаляла сиротские посты. Я считаю, что этот вариант предпочтительнее, так как он решает проблему сиротских постов в целом.

Также было бы очень полезно сэкономить время, если бы некоторые из этих опций были доступны прямо на карточке пользователя внутри тем, чтобы не нужно было переходить на страницу профиля пользователя и в админ-панель для получения доступа к функциям (приостановка, запрет на комментарии, удаление/уничтожение).

3 лайка

Используют ли эти спамеры какое-то конкретное слово или фразу? Вы можете добавить его в список отслеживаемых слов, чтобы предотвратить публикацию спама.

Вы можете временно изменить следующие настройки, чтобы упростить удаление аккаунтов спамеров: delete_user_max_post_age и delete_all_posts_max. Обязательно верните их к значениям по умолчанию после завершения работы, чтобы пользователи не могли просто рассылать спам и удалять себя.

4 лайка

Спасибо за предложения @itsbhanusharma

Да, они используют определённые фразы, но могут легко обойти это с помощью наборов символов Unicode (см.: Watched Words Improvement -- similar looking unicode characters).

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

1 лайк

Интересно, не помогут ли в вашем случае ограничение вариантов регистрации или принудительное включение двухфакторной аутентификации для пользователей?

1 лайк

В вашей конфигурации есть что-то глубоко и фундаментально сломанное, потому что новые пользователи с уровнем доверия 0

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

  • не защищены от удаления контента при его пометке

Удаление спамера — это операция в один клик с настройками Discourse по умолчанию. Так было всегда.

2 лайка

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

Единственные ограничения частоты действий для новых пользователей (только создание тем и ответов), которые я встречал:

  • Максимум тем в первый день: по умолчанию 3 темы — спамерам достаточно просто подождать 24 часа после первого поста
  • Максимум ответов в первый день: по умолчанию 10 ответов — спамерам достаточно просто подождать 24 часа после первого поста
  • Ограничение частоты создания тем новыми пользователями: по умолчанию 120 секунд между постами / 720 тем в день / 30 в час
  • Ограничение частоты создания постов новыми пользователями: по умолчанию 30 секунд между постами / 2880 постов в день / 120 в час

Пожалуйста, дайте знать, если я что-то упустил — надеюсь, что именно так. Буду благодарен за конкретные указания.

не защищены от удаления контента при сигнале

У меня не было проблем с этим, так как я изменил параметры delete_user_max_post_age и delete_all_posts_max.

Удаление спамера — это однощелчковая операция с настройками Discourse по умолчанию. Так было всегда.

О какой именно опции удаления вы говорите? Я в основном использую опцию на странице администратора пользователя, где для удаления пользователя требуется сначала удалить все его посты.

Я воздерживался от использования опции удаления пользователя через Akismet в очереди проверок, поскольку команда подтвердила, что она не удаляет посты пользователя (Discourse Akismet - #10)

Кнопка удаления на странице профиля пользователя выдаёт мне эту ошибку после долгого ожидания (если у пользователя есть посты/контент): «Произошла ошибка при удалении пользователя. Убедитесь, что все посты удалены, прежде чем пытаться удалить пользователя».

Флаг > это спам > удалить спамера выдаёт ту же ошибку: «Произошла ошибка при удалении пользователя. Убедитесь, что все посты удалены, прежде чем пытаться удалить пользователя». Это немного странно: операция не удалась со спамером, у которого было около 500 постов, но сработала со спамером, у которого было около 150 постов (хотя ошибка всё равно появлялась). На аккаунтах с всего несколькими постами работает без проблем.

Как, чёрт возьми, спамер может набрать 500 сообщений?! Это означает, что вы значительно изменили настройки по умолчанию в Discourse, поскольку новый пользователь ограничен по скорости публикации на уровне TL0, а также имеет лимит на количество сообщений в первый день.

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

3 лайка

@codinghorror

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

  1. Да, спамеры не ограничиваются спамом только в первый день. Это самый старый трюк в книге форумного спама: публиковать приветствия или другие короткие, на первый взгляд безобидные посты в первый день, чтобы «разогреть» аккаунт для последующего спама (обычно чтобы обойти ручное одобрение). Или же их просто не выявляют в течение первых 24 часов.

  2. Пользователи с уровнем TL0 (24 часа после первого поста) по умолчанию ограничены 2880 постами и 720 темами в день. Если я ошибаюсь, просветите меня.

  3. Они используют спиннеры, чтобы сделать каждый пост уникальным и обойти настройку «минимальное количество уникальных постов», например, добавляя случайные эмодзи, символы, цифры и т. д.

  4. Наблюдаемые слова легко обойти, используя разные наборы символов Unicode: Watched Words Improvement -- similar looking unicode characters

  5. Автоматическое отключение молчания для быстро печатающих пользователей при первом посте — легко обходится и работает только для первых постов.

  6. Спамерам слишком легко создавать массовые аккаунты с минимальными затратами ресурсов, используя большой пул прокси. Использование старого трюка с точкой в Gmail делает полностью невозможным блокировку в стандартном экземпляре Discourse (даже при использовании Akismet). Вы фактически находитесь в зависимости от того, насколько мотивирован кто-то, чтобы заспамить ваш форум. См.: Protecting against gmail dot trick in Discourse и Suggestion: Wildcard Block Email Address

В любом случае, я делюсь этими наблюдениями из окопов борьбы со спамом с целью помочь Discourse стать более непробиваемым. Функции анти-спама здесь действительно подвергаются стресс-тестированию.

У спамеров есть два основных варианта: создавать несколько аккаунтов и спамить понемногу на каждом из них или создавать меньше аккаунтов, но спамить на каждом из них много. Если ужесточить лимиты скорости, они просто ответят созданием большего количества аккаунтов, поскольку их так легко создавать и невозможно заблокировать с помощью трюка с точкой в Gmail.

Они также могут использовать пользовательский домен с функцией catchall для получения неограниченного количества адресов электронной почты для регистрации, но это работает только до тех пор, пока я не добавлю их домен в чёрный список, что является эффективной защитой. Хотя было бы действительно полезно иметь возможность удалять все аккаунты, использующие конкретный домен электронной почты, чтобы быстро и легко банить их задним числом. Ещё лучше, если это будет возможно для Gmail (и всех вариаций адреса).

Речь идёт о том, чтобы быстрее и эффективнее убирать хаос в фоновом режиме. Удалять спамеров, которым удаётся прорваться через защиту. А также чтобы функция работала по назначению, например, чтобы опция «удалить спамера» работала для спамеров с приличным количеством постов.

Честно говоря, ваш сайт звучит патологически. Просто невозможно, чтобы я когда-либо видел реального спамера, набравшего 500 постов на Discourse, не говоря уже о 150… за последние 5 лет на тысячах размещённых сайтов, включая несколько, которые я сам веду и управляю ими. Единственное, что приходит на ум, — это спам bamwar, который вы можете поискать, если вам интересно.

Пожалуйста, поделитесь конкретными деталями, как упоминалось ранее. В противном случае я не уверен, что кто-то здесь сможет вам помочь:

Я имею в виду, вы управляете чёрным сайтом для спамеров? :thinking:

3 лайка

Я видел эту тему некоторое время назад. Звучит как довольно серьёзная проблема, которая всё ещё актуальна и вызывает стресс. Не знаю, поможет ли это (может помочь с постами, но не с регистрациями), но пробовали ли вы следующее?

admin/site_settings/category/posting?filter=Approve

  • Количество постов для одобрения (Количество постов от нового или базового пользователя, которые должны быть одобрены)

  • Одобрять, если уровень доверия ниже (Посты пользователей с уровнем доверия ниже этого должны быть одобрены)

  • Одобрять новые темы, если уровень доверия ниже (Новые темы пользователей с уровнем доверия ниже этого должны быть одобрены)

4 лайка