Фильтр злоупотреблений

Create issue
Issue #51 new
Ферапонт Соусов repo owner created an issue

Сделать некое средство, которое замечает типичную аномальную активность типа вайпов (массовое создание новых нитей и другие сценарии) и блокирует её. Подумать над возможными настройками.

Возможный вариант (в виде пунктов гипотетической страницы настроек):

  • Фильтр включается или выключается в модерке,
  • Выбор досок, на которых он должен включаться (все или только определённые),
  • Квота по сообщениям и нитям (возможно, отдельно), можно не заморачиваться с автоматическими расчётами и вбивать вручную, я думаю, При превышении достаточно просто отклонять, хотя при желании можно запилить и автобан при признаках долбёжки (но тут надо думать, как её определять).
  • Белый список пользователей, на которых не распространяется фильтр. Вот тут бы пошёл автоматический сбор адресов, с которых есть сообщения, за заданное количество дней, а также возможность добавлять вручую. Залогиненные в модерку по-хорошему не должны фильтроваться изначально.

Comments (10)

  1. Яким Куй

    Можно сделать простой лимит на количество постов/бампов/тредов в час, но оно ж будет бить по всем.
    Для поисков аномалий всяко есть какие либы, но их ещё надо прикрутить, и статистика в целом не моя область работы.

  2. Ферапонт Соусов reporter

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

    Ещё можно для пользователей с “проверенными IP” как-то смягчить это, но надо думать, как уменьшить возможность создания заранее “спящих агентов”.

  3. Яким Куй

    Ну допустим.

    Есть окно в N минут/часов/дней, при попытке постинга сверяется с другим окном за:

    1. Прошлое окно
    2. Прошлое окно неделю/день назад (чтобы не удивляться тому, что в 5 утра постов нет, но есть в 6)
    3. Средним за N прошлих окон

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

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

  4. Ферапонт Соусов reporter

    Ну, наверное, как-то так. Ещё бы сделать режимы, чтобы можно было либо вообще отключить, либо наоборот по самым строгим параметрам фильтровать. И по-хорошему, отдельно учитывать ОП-посты и ответы.

  5. Ферапонт Соусов reporter

    Ну и хорошо бы действительно предусмотреть исключения для проверенных пользователей.

  6. Михаил Штенников

    Не понимаю такие сложности. Просто если за последние 5 минут/час было отправлено (всеми вместе) больше 20/50 постов или создано 5/10 тредов, то тупо замораживаешь постинг/создание тредов и отправляешь алерт уполномоченному через апи удобного мессенджера. Он приходит и разбирается со злодеем, убирая эти жалкие 10 тредов.

  7. Михаил Штенников

    https://bitbucket.org/Therapont/fbe-410/src/fc7fe4fdeff231141314b838d7c220893807973b/board.php#lines-297
    Вот хоть сюда вставляй еще пару простых проверок, а заморозку создания тредов реализуй через поле вида new_threads_lock_expires_timestamp в таблице. Я бы запилил, но вы в /dev/ очень уж пугаете сложностями поднять тестовую доску. Гайд, а то и докер-образ для быстрого развертывания помог бы возможным энтузиастам.

  8. Log in to comment