Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Служебные скрипты [PtokaX] _ Defend Chat

Автор: Enyby 1.3.2012, 23:47

Название скрипта: Defend Chat
Версия скрипта: 1.00
Платформа: PtokaX
Версия API: API2
Автор: Enyby

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

Принципы работы скрипта:
Обычные пользователи отличаются от спамеров тем, что у обычные пользователи, если и кидают ссылку на хаб, IP адрес или что-то подобное, то это будет не первое сообщение после входа на хаб. На этом и основана работа скрипта.

Чисто теоретически, можно сделать таймаут на все или же попавшие под паттерн сообщения. Т. е. если пользователь на хабе меньше 5 минут, то ссылку в чат он не отправит. Но подобные скрипты уже есть.

Каждое сообщение проверяется таблицей паттернов на принадлежность к "плохим". Если сообщение плохое, то оно пройдет только в том случае, если пользователь перед этим отправил не менее 5 "хороших" сообщений в чат. Т. е. при этом скрипте нельзя писать в чат ссылки, если не участвуешь в разговоре. После перезахода нужно снова отправить не менее 5 сообщений без ссылок, чтобы ссылка прошла в чат. Причем, при ошибочных попытках, счетчик "хороших" ссылок обнуляется. Также блокируется отправка одинаковых сообщений в чат, даже от разных пользователей.

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

 DefendChat.lua ( 3.44 килобайт ) : 147


P. S. Если у вас нет регистрации на этом форуме, а значит вы не можете качать вложения, то скачать этот скрипт, равно как и другие, можно по ссылке http://mydc.ru/r/?http://inethub.olvi.net.ua/ftp/pub/Soft/Servers/DC%2B%2B/LUA%20scripts/Enyby/ http://mydc.ru/r/?ftp://inethub.olvi.net.ua/pub/Soft/Servers/DC++/LUA%20scripts/Enyby/.

Автор: alex82 2.3.2012, 14:20

Могу подсказать еще один способ защиты чата от флудоботов (чтобы прочитать текст, вам необходимо стереть защитное покрытие с помощью монеты):
Подавляющее большинство самописных флудоботов не имеют поддержки сжатия (ZPipe/ZPipe0), в отличие от нормальных клиентов. Вся проблема в том, что птока не добавляет в таблицу юзера информацию о поддержке сжатия, и тому, кто решится написать скрипт, блокирующий чат по этому принципу, придется заниматься мазохизмом, отлавливая отправку клиентом команды $Supports

Автор: Ksan 2.3.2012, 15:42

alex82, насчёт "отлавливая команду..." - вопрос - если она (команда) есть - бот, или наоборот, если нет такой команды - бот?

Автор: Enyby 2.3.2012, 16:28

Если в $Supports нет подстроки Zpipe => то это бот. Или старый клиент. big_smile.gif

ADD:
Да, подход вполне имеет право на жизнь. Хотя может работать не всегда. Вот, например, для утилиты flood от ZeroCool - поможет ($Supports UserCommand UserIP2|).

Автор: alex82 2.3.2012, 16:54

Оно не будет работать если спамбота писал жутко продвинутый кодер, позаботившийся о полном сходстве своего творения с каким-нибудь DC-клиентом, либо если спамбот основывается на каком-нибудь DC-клиенте. 95% (если не больше) спамботов не подходят под это описание secret_smile.gif . В том числе те придурковатые итальяшки, что спамят по всем крупным хабам фразой "new hub pls connect dchub://адрес_говнохаба 0,617443" bad_smile.gif .

Автор: Enyby 2.3.2012, 16:57

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

to alex82:
Ну так. Целью стоит отсеять хоть сколько-то ботов, а не отлить серебрянную пулю. Так что все в порядке.