- Регистрация
- 20.01.2011
- Сообщения
- 7,665
- Розыгрыши
- 0
- Реакции
- 135
Спешу поделиться с вами анти-спам плагином для Pidgin, при должной настройке которого, проблема спама в jabber решается радикально.
Вы попросту забудете об этом явлении раз и навсегда, сможете открыто публиковать свои контакты, без риска получения спама.
В этом посте я попытаюсь детально объяснить как работает плагин, приведу аргументы в подтверждение написанному выше,
а в конце вы сможете найти ссылки на исполняемые файлы (как для Linux, так и для Windows), а также на исходные коды.
Все анти-спам решения для Pidgin, которые мне довелось испытать, обладали недостатками, сводящими на нет применение этих решений.
К таким недостаткам я отношу:
Каждый раз, когда неизвестный пользователь пытается отправить сообщение, он получает в ответ приглашение пройти некий челендж,
а также один из вопросов, перечисленных в файле:
Для просмотра ссылки Войдиили Зарегистрируйся
В случае успешного ответа на вопрос все последующие сообщения отправителя и его запросы авторизации будут доставлены адресату.
Вопрос, на который был получен верный ответ, временно удаляется из списка вопросов. Такая мера предотвращает риск прохождения челенджа
спамером с целью применения полученного ответа в последующих спам-рассылках. Когда количество неиспользованных вопросов достигает
минимального значения установленного пользователем, все вопросы из списка обнуляются, то есть становятся вновь доступными для использования.
В случае неверного ответа, отправитель получает сообщение, сигнализирующее об этом,
а также новый вопрос из файла, как показано на следующем изображении:
Для просмотра ссылки Войдиили Зарегистрируйся
Количество попыток пройти челендж ограничено и задается пользователем в настройках плагина.
При исчерпании попыток любые сообщения от отправителя блокируются, а сам он получает соответствующее сообщение:
Для просмотра ссылки Войдиили Зарегистрируйся
Если вместо обычного сообщения неизвестный отправитель попытается отправить OTR-сообщение, он также получит приглашение пройти челендж.
Повторные попытки отправки OTR-сообщений будут проигнорированы. Следующее изображение это наглядно демонстрирует:
Для просмотра ссылки Войдиили Зарегистрируйся
А так выглядит меню конфигурации модуля:
Для просмотра ссылки Войдиили Зарегистрируйся
The challenge explanation - первое сообщение, которое получает неизвестный отправитель.
Оно дополняется вопросом из файла. Назначение остальных сообщений аналогичное:
Плагин поддерживает автоматические черный и белый списки, которые существуют до следующей перезагрузки Pidgin.
Входящие сообщения и уведомления об ошибках принимаются только от отправителей, присутствующих в списке контактов пользователя или в белом списке.
Собеседники добавляются в белый список после успешного прохождения челенджа, а также по факту отправки пользователем сообщения в их адрес.
В черный список попадают отправители, не сумевшие пройти челендж за отведенное количество попыток.
Любые сообщения от таких отправителей игнорируются.
Изменение содержимого файла со списком вопросов и ответов отслеживается по его хэш-сумме.
Если она изменится, то при следующей загрузке Pidgin все записи из этого файла будут обработаны как новые.
Далее я поделюсь своими рассуждениями о методах использования плагина и почему он неприступен для потенциального спамера.
Во-первых, мы можем использовать список общеизвестных фактов в качестве вопросов, слегка перефразировав их описание.
В таком случае у каждого пользователя модуля будет свой уникальный список вопросов. И я с трудом представляю
как спамер сможет правильно отвечать на такие вопросы в автоматическом режиме.
Во-вторых, в качестве вопросов мы можем использовать ссылки на капчу. Следующий пример демонстрирует это:
Для просмотра ссылки Войдиили Зарегистрируйся
Вы могли бы подумать, что спамер воспользуется услугами анти-капча сервиса для решения своих проблем. Но ему это не поможет, поскольку:
использовать браузерный движок для обработки ответов web-сервера, да к тому же это еще может оказаться невыгодным.
В-третьих, по ссылке может быть что угодно, не обязательно капча. Например, видео, аудио или же просто текст.
В последнем случае мы можем попросить испытуемого ввести только цифры определенного цвета.
В общем, здесь наша фантазия не имеет границ.
Резюмируя вышесказанное, отмечу, что практически невозможно изобрести универсальное средство обхода предложенных вариантов защиты,
поскольку анти-спам модуль децентрализованный, то есть полностью настраивается и функционирует на стороне клиента.
Все аспекты работы плагина надежно проверены, как в тестовых, так и в "боевых" условиях. Там, где были десятки спам-сообщений ежедневно,
теперь их нет вообще. При возникновении любых проблем или ошибок, связанных с работой данного модуля, предлагаю сообщать о них в этой теме.
Как установить плагин?
или Зарегистрируйся).
С исходным кодом можно ознакомиться здесь (Для просмотра ссылки Войдиили Зарегистрируйся).
Надеюсь, что информации получилось не слишком много и она легка для восприятия.
Вы попросту забудете об этом явлении раз и навсегда, сможете открыто публиковать свои контакты, без риска получения спама.
В этом посте я попытаюсь детально объяснить как работает плагин, приведу аргументы в подтверждение написанному выше,
а в конце вы сможете найти ссылки на исполняемые файлы (как для Linux, так и для Windows), а также на исходные коды.
Все анти-спам решения для Pidgin, которые мне довелось испытать, обладали недостатками, сводящими на нет применение этих решений.
К таким недостаткам я отношу:
- Отсутствие защиты от спама, отправляемого в зашифрованном с помощью OTR виде.
- Отсутствие подавления сообщений об ошибках уровня протокола, приходящих от неизвестных отправителей.
- Наличие только одного контрольного вопроса и ответа к нему.
Каждый раз, когда неизвестный пользователь пытается отправить сообщение, он получает в ответ приглашение пройти некий челендж,
а также один из вопросов, перечисленных в файле:
Для просмотра ссылки Войди
В случае успешного ответа на вопрос все последующие сообщения отправителя и его запросы авторизации будут доставлены адресату.
Вопрос, на который был получен верный ответ, временно удаляется из списка вопросов. Такая мера предотвращает риск прохождения челенджа
спамером с целью применения полученного ответа в последующих спам-рассылках. Когда количество неиспользованных вопросов достигает
минимального значения установленного пользователем, все вопросы из списка обнуляются, то есть становятся вновь доступными для использования.
В случае неверного ответа, отправитель получает сообщение, сигнализирующее об этом,
а также новый вопрос из файла, как показано на следующем изображении:
Для просмотра ссылки Войди
Количество попыток пройти челендж ограничено и задается пользователем в настройках плагина.
При исчерпании попыток любые сообщения от отправителя блокируются, а сам он получает соответствующее сообщение:
Для просмотра ссылки Войди
Если вместо обычного сообщения неизвестный отправитель попытается отправить OTR-сообщение, он также получит приглашение пройти челендж.
Повторные попытки отправки OTR-сообщений будут проигнорированы. Следующее изображение это наглядно демонстрирует:
Для просмотра ссылки Войди
А так выглядит меню конфигурации модуля:
Для просмотра ссылки Войди
The challenge explanation - первое сообщение, которое получает неизвестный отправитель.
Оно дополняется вопросом из файла. Назначение остальных сообщений аналогичное:
- success - при успешном прохождении челенджа
- mistake - при ошибочном ответе на вопрос
- failure - в случае исчерпания попыток
Стоит отметить, что при разборе указанных сообщений, а также при разборе вопросов и ответов из файла, учитываются
управляющие последовательности символов. Например, можно использовать "\n" в качестве перевода на новую строку.
К сожалению, возможности Pidgin по построению оконных интерфейсов весьма скудны. Мне пришлось пожертвовать качеством
описания полей интерфейса в пользу простоты сборки проекта в среде Windows, с тем, чтобы не прибегать к библиотеке GTK.
Плагин поддерживает автоматические черный и белый списки, которые существуют до следующей перезагрузки Pidgin.
Входящие сообщения и уведомления об ошибках принимаются только от отправителей, присутствующих в списке контактов пользователя или в белом списке.
Собеседники добавляются в белый список после успешного прохождения челенджа, а также по факту отправки пользователем сообщения в их адрес.
В черный список попадают отправители, не сумевшие пройти челендж за отведенное количество попыток.
Любые сообщения от таких отправителей игнорируются.
Изменение содержимого файла со списком вопросов и ответов отслеживается по его хэш-сумме.
Если она изменится, то при следующей загрузке Pidgin все записи из этого файла будут обработаны как новые.
Далее я поделюсь своими рассуждениями о методах использования плагина и почему он неприступен для потенциального спамера.
Во-первых, мы можем использовать список общеизвестных фактов в качестве вопросов, слегка перефразировав их описание.
В таком случае у каждого пользователя модуля будет свой уникальный список вопросов. И я с трудом представляю
как спамер сможет правильно отвечать на такие вопросы в автоматическом режиме.
Во-вторых, в качестве вопросов мы можем использовать ссылки на капчу. Следующий пример демонстрирует это:
Для просмотра ссылки Войди
Вы могли бы подумать, что спамер воспользуется услугами анти-капча сервиса для решения своих проблем. Но ему это не поможет, поскольку:
- У каждого пользователя плагина может быть индивидуальная структура HTML-страницы содержащей капчу.
По этой причине спамер не сможет создать универсальный парсер капчи для отправки ее в анти-капча сервисы. - Мы можем тестировать браузерное окружение отправителя и фильтровать ботов по отсутствию его признаков.
- Мы можем использовать капчу, проблемную для анти-капча сервисов.
использовать браузерный движок для обработки ответов web-сервера, да к тому же это еще может оказаться невыгодным.
В-третьих, по ссылке может быть что угодно, не обязательно капча. Например, видео, аудио или же просто текст.
В последнем случае мы можем попросить испытуемого ввести только цифры определенного цвета.
В общем, здесь наша фантазия не имеет границ.
Резюмируя вышесказанное, отмечу, что практически невозможно изобрести универсальное средство обхода предложенных вариантов защиты,
поскольку анти-спам модуль децентрализованный, то есть полностью настраивается и функционирует на стороне клиента.
Все аспекты работы плагина надежно проверены, как в тестовых, так и в "боевых" условиях. Там, где были десятки спам-сообщений ежедневно,
теперь их нет вообще. При возникновении любых проблем или ошибок, связанных с работой данного модуля, предлагаю сообщать о них в этой теме.
Как установить плагин?
- Для Linux: поместите файл spamguard.so (Для просмотра ссылки Войди
или Зарегистрируйся) в папку "~/.purpe/plugins" - Для Windows: поместите файл spamguard.dll (Для просмотра ссылки Войди
или Зарегистрируйся) в папку "C:\\Program Files (x86)\Pidgin\plugins"
Либо в иную, если стандартный установочный путь Pidgin был изменен во время установки.
С исходным кодом можно ознакомиться здесь (Для просмотра ссылки Войди
Надеюсь, что информации получилось не слишком много и она легка для восприятия.
У вас мог возникнуть вопрос: как же использовать капчу совместно с данным модулем?
Вам придется сгенерировать набор изображений самостоятельно, с использованием какого-нибудь API либо посредством готовых решений, коих достаточно на github.
Затем разместить изображения с капчей на хостинге, сопоставив в файле адреса полученных ссылок со значениями изображений.
Если данный топик окажется популярным, то в будущем я дополню его скриптом, решающим эти задачи.