В последнее время я получаю много спама от ботов, и тратить время на их проверку очень утомительно.
Сейчас я рассматриваю одного из спамеров: текст написан на безупречном английском, используется VPN, адрес электронной почты есть в базе StopForumSpam, и я могу сказать, что контент был скопирован и вставлен, потому что использованный знак тире не существует на клавиатурах. Мне пришлось проверять всё это вручную, и сегодня утром мне ещё предстоит просмотреть несколько таких сообщений.
Придумал ещё одну идею:
Когда пост сохраняется, Discourse мог бы записывать дополнительные данные в поле JSONB этого поста:
- IP-адрес
- is_vpn? — поиск в MaxMind для определения организации и проверки, является ли она VPN (например, PacketHub S.A.)
- быстрая проверка адреса электронной почты в StopForumSpam
- сравнение количества символов, выведенных в редактор, и количества нажатых клавиш, генерирующих вывод (исключая стрелки, Ctrl и т. д.). Например, пользователь вывел 1000 символов в исходном содержимом, но нажал клавиши, генерирующие вывод, всего 10 раз (что указывает на вставку контента, после чего пользователь, возможно, отредактировал одно слово).
- Количество раз, когда контент копировался или вырезался с помощью сочетаний клавиш или через контекстное меню.
- Количество раз, когда контент вставлялся с помощью сочетаний клавиш или через контекстное меню. Разница между количеством копирования и вставки даст ещё один намёк.
Модераторы могли бы просматривать эти данные в постах в небольшой таблице. Необычные значения могли бы подсвечиваться, чтобы подозрительные посты сразу бросались в глаза.
Вероятно, не существует идеального метода для автоматического обнаружения спама, но наличие дополнительной информации ускорит процесс модерации.