Как выгнать ботов из анонимного чата?

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

Какая защита есть сейчас:
1. Администратор чата, но он не всегда может быть 24/7
2. Чат русскоязычный, поэтому если кто то пишет более 2 англоязычных слов подряд, сообщение удаляется (англоязычные боты разу пропали).
3. Если кто то пишет сообщение более заданного числа букв, получает бан. (легко обойти)
4. Если кто то пишет одни и те же сообщения или пишет сообщения слишком часто, предлагается ввести код капчи (тоже обходится писание разных сообщений с разных ip)
5. При отправке сообщения генерируется хэш сумма запроса, которая проверяется на стороне сервера. (тоже не трудно обойти)
6. Весь трафик идёт через прокси сервер, боты с плохими заголовками или без них отлетают сразу, ещё на стадии прохода через проксю.

Вопрос: Как ещё можно подпортить кровь программистам, которые пишут ботов под мой чат?

Дополнение 1.
Передать права администратора пользователям нельзя. Участники - компании, и с правами администратора, они просто будут давить конкурентов.
Много комментариев про то, что бы регестрироваться, это исключено. В связи со спецификой чата, ни кто регистрироваться не будет.
Понравилась идея, отследить какие слова, чаще всево используют спамеры и вызывать при их использовании капчу.
Иногда боты просто вставляют текст из википедии или других сайтов, без ссылок и майлов, что бы заспамить чат. Проделки конкурентов.
Может у кого ещё есть идеи?
  • Вопрос задан
  • 1013 просмотров
Решения вопроса 5
landergate
@landergate
IT-шный jack-of-all-trades
Если паттерны поведения предсказуемы (интервалы, фразы, наличие ссылок) - автоматически блокировать по обнаружении, но вы это уже отчасти делаете.

Если паттерны непредсказуемы, вариантов немного:
  • Ручная модерация. Добавить больше операторов в чат среди постояльцев.
  • Трекить источник подключения. Возможно, что боты запускаются с одних сетей. Можно закрыть им доступ к чату.
  • Минимальная капча на вход. Не обязательно делать её сверх-сложной.
  • Заблокировать подключение хостам со списков DNSBL и Tor-exit нод.
Ответ написан
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
запретить постинг через прокси. 2ch к примеру так работает. через прокси и всякие frigate расширения нельзя отправлять сообщения
Ответ написан
Adamos
@Adamos
Юзерам ведь тоже надоели спамеры?
Так дайте зарегистрированным пользователям возможность попросить полномочия модератора-спамореза, способного единолично, одной кнопкой, скрыть любое сообщение от анонима.
Адекватным завсегдатаям - дайте.
Останется вам только отслеживать злоупотребляющих этим делом и отбирать у них плюсометы.
Ответ написан
@fluid
Добавить пустой js файл, который будет обрабатывать backend, если было обращение к этому файлу от юзера - все ок, если нет - бот. только нужно что бы у всех юзеров обновилась страница. Боты обычно не браузерные, а консольные и не вытягивают полную страницу сайта, а на прямую обращаются к API.
Ответ написан
@fredis69
У меня тоже есть подобный чат (без регистрации) боты были раньше,
Подключил fingerprint - https://github.com/Valve/fingerprintjs2
При первом входе пользователя в чат, запускаем fingerprint (конечно при его запуске страница гораздо дольше грузится, но это только при первом входе), после чего добавляем fingerprint в бд к остальным данным о этом пользователе и в сессию, и при каждой отправке сообщения сверяем данные.
Если у пользователя не определился fingerprint, то он просто не может писать в чат.
И боты пропали, сейчас иногда бывают спамеры, которые через браузер спамят, но на них, у меня есть модераторы, которые могут своевременно забанить данного пользователя (бан идет по IP и fingerprint)

Не каких капч нет в чате. Возле каждого сообщения есть кнопка с жалобой (любой пользователь, который общается в чате более суток может отправить жалобу, она приходит мне и модераторам на телефон, в случае чего можем быстро отреагировать)
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Все четко сказал landergate!
Я добавлю к его ответу:
1. Сделайте кнопку "спам" (значок + диалоговое окно для подтверждения) напротив каждого сообщения юзера в чате.
2. Если юзер получил 50% или более голосов от других пользователей (для подсчета процентов, фиксируем кол-во пользователей в чате на момент входа юзера в чат-комнату), что он спамер - заносим этот IP в бан-лист на 1 час и фиксируем IP и кол-во штрафов в базе.
3. Если снова получил этот же IP: бан на день, затем (при следующем штрафе) - на месяц, на 3, на пол-года и перманентный.
Ответ написан
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Сделайте как на тостере, дайте возможность пользователям самим модерировать. Например кнопка спам. Получили 3 сообщения о спаме - удалили

Но самый правильный способ, это авторизация через соц сети. Причем через те, где новый аккаунт завести не просто.
Ответ написан
@LiguidCool
Ничего лучше капчей (при первом входе и далее) и регистрации (легко обходится).
Самое эффективное ИМХО смс авторизация, но это риск остаться без пользователей.
Ответ написан
makklovskiy
@makklovskiy Автор вопроса
Спасибо всем большое за ответы.
Но хилые боты отсеиваются ещё на стадии прокси сервера, через который у меня идёт весь трафик. Он же спасает от DDOS атак (в этом году отбил 3 шт.)
Речь идёт о ботах, полностью моделирующих работу пользователя.
С хорошими заголовками.
Сообщения они пишут с рандомным промежутком в 5-15 минут.
В сообщений нет ссылок есть только электронные почты.
К примеру:

Продам носки пишите marina@mail.ru

То что это бот говорит, о его активности 24/7
Обычные пользователи тоже дают свои почты, поэтому банить по мылу не вариант.
Рекапча есть, но она как сказано выше, появляется если сообщения пишут часто или одинаковые.
Постоянно вводить капчу, будет бесить пользователей.
Регистрируются люди по желанию. К статистике в чате 1000 гостей и 50 пользователей.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы