Защита от автоматической регистрации н. Плагин защиты от спама и автоматических регистраций для CMS

И я представлю вам один из необходимых плагинов (расширений), а именно средство для защиты сайта от спама . Конкретно, речь пойдет о плагине KeyCAPTCHA .

Известно, что в настоящее время спам (несанкционированная отправка писем на email, комментариев на сайт или не относящихся к теме обсуждения постов на форум, носящих в основном рекламный характер) и автоматическая регистрация на сайтах и форумах распространились настолько, что приобрели характер эпидемии. Причем эта работа поручается специально разработанным программам – ботам.

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

Одним из таких средств является (капча). Это аббревиатура от английских слов "Completely Automatic Public Turing Test to Tell Computers and Humans Apart" - в переводе полностью автоматический тест Тьюринга для различения компьютеров и людей. Иными словами, это задача, которую легко решает человек, но которую невозможно (или крайне трудно) научить решать компьютер.

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

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

В настоящее время одним из новых и наиболее трудно обходимых ботами является плагин Он разработан для нескольких наиболее распространенных (CMS), таких как Joomla, Drupal, WordPress и форумных движков vBulletin, SMF, IPB, phpBB и других сайтов на PHP.

Как было сказано, обычно капчи основаны на угадывании искаженных текстовых символов, представ­ленных вдобавок не текстом, а картинкой. В отличие от этого KeyCAPTCHA предлагает посетителю выполнить простое интерактивное задание . Либо по сборке картинки из фрагментов (пазл), либо отыскание парной по тематике картинки.

Выглядит он следующим образом:

При неправильном решении KeyCAPTCHA не происходит обновление страницы, что позволяет пользователю не заполнять поля формы повторно. Это достигается за счет отправки запроса на проверку капчи на сервера KeyCAPTCHA до отправки заполненной формы на защищаемый веб-сервер.

Собирать картинку человеку нетрудно, так как абсолютная точность подгонки совершенно не требуется , достаточно собрать приблизительно верно.

Надежность работы обеспечивается следующими мерами.

  1. Для работы сервиса KeyCAPTCHA используется гео-кластер, в который входят сервера, расположенные в разных дата-центрах Европы. Часть серверов находится в специальных DDoS устойчивых дата-центрах Швейцарии, что обеспечивает надежную работу сервиса в режиме 24x7x365.
  2. KeyCAPTCHA блокирует спамеров, использующих анонимайзеры или анонимные HTTP прокси для рассылки ручного спама.
  3. В браузере посетителя отсутствует информация о правильном решении капчи.
  4. Проверка корректности выполнения задания происходит на сервере KeyCAPTCHA.
  5. Вся передача данных между Вашим веб-сервером, веб-браузером посетителя и сервером KeyCAPTCHA защищается цифровой подписью.
  6. Каждое пришедшее сообщение на сервер KeyCAPTCHA либо на Ваш веб-сервер проходит проверку на корректность цифровой подписи.
  7. При формировании цифровой подписи используется пароль переменной длины (112-165 бит).
  8. KeyCAPTCHA представляет из себя программный код, выполняемый в веб-браузере посетителя, а не статичную картинку, как в обычных капчах.
  9. Получив нашу капчу, ее невозможно передать третьим лицам для выполнения задания, как это делают спамеры, обходя обычные капчи.
  10. Вероятность угадать ответ, расставив подвижные объекты случайным образом, равна 1/30 000 000.
  11. Изображения, используемые в капче, передаются в зашифрованном виде.

KeyCAPTCHA поддерживает два режима работы: Flash и HTML5 . Режим HTML5 обеспечивает работу KeyCAPTCHA в большинстве современных браузерах, таких как Mozilla FireFox, Google Chrome, Safari, а также для работы на iPhone и iPad. Режим Flash разработан для работы в веб-браузерах Internet Explorer и Opera. При загрузке KeyCAPTCHA автоматически определяет режим своей работы в зависимости от браузера посетителя.

Эта капча применительно к Joomla, по заявлению разработчиков (сам не проверял), поддерживает следующие популярные расширения : JComments, yvComment, K2 Comments, JXtened comments, VirtueMart, Community Builder, JomSocial, AlphaRegistration, K2 Registration, DFContact, ALFcontact, Phoca Guestbook, Easybook Reloaded,FlexiContact, JoomlaDonation, ChronoForms, AdsManager, QContacts, Job Board, Mosets Tree, HikaShop, JWHMCS Integrator.

Помимо этого капча для Joomla защищает стандартные формы Joomla: Registration, Contact Us, Reset Password and Remind Username.

Для скачивания плагина и получения возможности работы с ним требуется бесплатная регистрация на сайте https://www.keycaptcha.com/ . Вы задаете, на каких сайтах будете использовать плагин, указываете тип CMS и его версию и получаете ссылку на скачивание и конкретно для вас уникальный персональный секретный ключ и код скрипта . Эти данные вставляете в параметры плагина при его активации.

На этом на сегодня все.

Чтобы не пропустить ничего из публикуемых материалов, вы можете подписаться на одну из RSS лент : Все новости сайта , Новости раздела « Сказки Старого Юзера » или Новости раздела « Мир Андроида ».

Обсуждение этой статьи можно проводить в

9 февраля 2011 в 00:28

Как защитить форум на движке phpBB от автоматических регистраций

  • Спам и антиспам

Форумный движок phpBB обладает большим количеством достоинств, он удобен и для пользователей и для модераторов и, как следствие, очень популярен. Но именно популярность порождает его главный недостаток — его спамят, причем спамят в автоматическом режиме. Через некоторое время постоянный поток регистраций новых фейковых пользователей и спам сообщений от них может порядком поистрепать нервы администрации сайта.

PhpBB версии 3.* в базовой поставке содержит аж 4 варианта каптчи, которые можно предлагать пользователям при регистрации на форуме. Есть даже recaptcha , однако для автосабмиттеров, как показывает практика, это не помеха.

Эти программы знают как выглядят типовые точки входа на страницы регистрации различных форумных движков. Знание это основано на распознавании DOM-моделей вебстраниц, содержащих формы для регистрации новых пользователей, для постинга сообщений и так далее. То есть, например, в случае phpBB робот знает, что точка входа для регистрации находится по адресу /ucp.php?mode=register и что на этой странице есть кнопка вида:

Не вдаваясь в технические подробности, отмечу что найти и нажать эту кнопку в html-документе уже можно как минимум по id или по name.

Как только робот добирается до страницы с каптчей, он получает картинку каптчи и пытается распознать её. Тут могут применяться различные технологии, в зависимости от изощренности программы, от OCR-алгоритмов до простого распознавания каптчи живым человеком. Именно поэтому защита не срабатывает. Бан IP-адресов на форуме также абсолютно бесполезен, так как роботы спамят через многочисленные прокси сервера. В этом смысле нет разницы банить адреса или чистить новые авторегистрации, всё так или иначе сводится к потере времени.

Получается, что единственный способ отсечь автосабмиттеры — немного видоизменить разметку точки входа на форум уникальным образом. Еще года два-три назад для phpBB2 я проделал такой фокус и это сработало — автоматические регистрации прекратились. Тоже самое недавно удалось подтвердить на другом сайте, уже на движке на phpBB3.

Далее я приведу конкретный проверенный пример видоизменения страницы регистрации phpBB. Однако хотелось бы оговориться, что данный пост предлагает концепцию защиты от автоматических регистраций на форумах, а не конкретные способы. Всё зависит от рук и головы администратора форума. Желательно обладать элементарными знаниями html и css. Если читатели начнут массово копировать данный способ, то эту «эвристику» спамеры запрограммируют в свой софт и автоматические регистрации продолжатся.

Итак, выбираем настройках phpBB форума самую простую каптчу «CAPTHA без GD».
Выглядит в браузере (FF3) это так:

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

Собственно атрибут src в теге img и содержит картинку с каптчей. Открываем фолдер с текущей темой, установленной на форуме. В моем случае это prosilver: /forum/styles/prosilver/template. В нём находим файл captcha_default.html. Если посмотреть в этот шаблон, то видно место, в котором формируется вышеупомянутая разметка:

Лёгким телодвижением усложним жизнь автосабмиттерам:

Выглядеть в браузере это будет теперь так:

Согласен, не очень красиво, зато нервы админа теперь будут в порядке. Обычные пользователи по-прежнему могут регистрироваться. Разумеется, при апгрейде движка на более новую версию нужно будет не забыть проделать этот фикс еще раз. Надеюсь, что храбро-phpbb-пользователи не будут зацикливаться на данном примере, а придумают другие способы изменения точки входа согласно предложенной концепции защиты.

В этой статье я хочу рассмотреть несколько известных методов защиты контента сайта от автоматического парсинга. Kаждый из них обладает своими достоинствами и недостатками, поэтому выбирать нужно исходя из конкретной ситуации. Кроме этого, ни один из этих методов не является панацеей и практически для каждого есть свои пути обхода, которые я тоже упомяну.

1. Бан по IP адресу

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

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

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

Есть сервисы (вроде distilnetworks.com), которые позволяют автоматизировать процесс отслеживания подозрительной активности на вашем сайте и даже сами включают проверку пользователя с помощью каптчи.

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

2. Использование учетных записей

В этом способе защиты доступ к данным осуществляется только авторизованным пользователям. Это позволяет легче контролировать поведение пользователей и блокировать подозрительные аккаунты вне зависимости от того, с какого IP адреса работает клиент.

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

Эта защита обходится путем создания (в том числе автоматического) множества учетных записей (есть даже сервисы, которые торгуют готовыми учетными записями для известных социальных сетей, например buyaccs.com и bulkaccounts.com). Cущественным усложнением автоматического создания учетных записей может являться необходимость верификации аккаунта посредством телефона с проверкой его уникальности (так называемые, PVA -Phone Verified Account). Но, в принципе, это тоже обходится путем покупки множества одноразовых SIM-карт.

3. Использование CAPTCHA

Это тоже распространенный метод защиты данных о парсинга. Здесь пользователю для доступа к данным сайта предлагается ввести капчу (CAPTCHA). Существенным недостатком этого способа можно считать неудобство пользователя в необходимости ввода капчи. Поэтому этот метод лучше всего применим в системах, где доступ к данным осуществляется отдельными запросами и не очень не часто.

Примером использования каптчи для защиты от автоматического создания запросов могут служить сервисы проверки позиции сайта в поисковой выдаче (например http://smallseotools.com/keyword-position/).

Обходится каптча посредством программ и сервисов по ее распознаванию. Они делятся на две основные категории: автоматическое распознавание без участия человека (OCR, например программа GSA Captcha Breaker) и распознавания с помощью человека (когда где-то в Индии сидят люди и в режиме онлайн обрабатывают запросы на распознание картинок, напримером может служить сервис Bypass CAPTCHA). Человеческое распознание обычно более эфективно, но оплата в данном случае происходит за каждую каптчу, а не один раз, как при покупке программы.

4. Использование сложной JavaScript логики

Здесь в запросе к серверу браузер отсылает специальный код (или несколько кодов), которые сформированы сложной логикой написанной на JavsScript. При этом, часто код этой логики обфусцирован и размещен в одном или нескольких подгружаемых JavaScript-файлах.

Типичным примером использования данного метода защиты от парсинга является Facebook.

Обходится это посредством использования для парсинга реальных браузеров (например, с помощью библиотек Selenium или Mechanize). Но это дает данному методу дополнителое преимущество: исполняя JavaScript парсер будет проявлять себя в аналитике посещаемости сайта (например Google Analytics), что позволит вебмастеру сразу заметить неладное.

5. Динамическое изменение структуры страницы

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

С другой стороны, эти изменения могут делаться в ручном режиме где-то раз в месяц (или несколько месяцев). Это тоже существенно испортит жизнь парсерам.

Чтобы обойти такую защиту требуется создание более гибкого и «умного» парсера или же (если изменения делаются не часто) просто ручное исправление парсера, когда эти изменения произошли.

6. Ограничение частоты запросов и объемов загружаемых данных

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

Обходится это посредством доступа к сайту с разных IP адресов или учетных записей (симуляция многих пользователей).

7. Отображение важных данных в виде картинок

Данный способ защиты контента позволяет усложнить автоматический сбор данных, при этом сохранив визуальный доступ к ним со стороны обычного пользователя. Часто на картинки заменяются адреса электронной почты и телефоны, но некоторые сайты умудряются заменять картинками даже случайные буквы в тексте. Хотя ничто не мешает полностью выводить содержимое сайта в виде графики (будь то Flash или HTML 5), однако при этом может существенно пострадать его индексируемость поисковиками.

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

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

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

А если серьезно, защита от автоматической регистрации называется CAPTCHA (от англ. «Completely Automated Public Turing test to tell Computers and Humans Apart» и представляет собой полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей) — торговая марка Университет Карнеги — Меллона, компьютерный тест, используемый для того чтобы определить, человек ли использует систему. Термин появился в 2000 году.

В наиболее распространенном варианте CAPTCHA от пользователя требуется ввести символы, изображенные, как правило, в искаженном виде на предлагаемом ему рисунке, иногда с добавлением шума или полупрозрачности. Реже применяются CAPTCHA, основанные на распознавании речи (в основном как альтернатива для людей с нарушениями зрения), либо на других вариантах задач искусственного интеллекта.

CAPTCHA чаще всего используется при необходимости предотвратить использование интернет-сервисов ботами, в частности, для предотвращения автоматической регистрации, скачивания файлов, массовых рассылок и т. п.

Существуют программы, распознающие конкретные реализации CAPTCHA, к примеру, PWNtcha. Кроме того, существует возможность подключать модули из программ распознавания текста общего назначения (например Fine Reader) в программы сторонних разработчиков для распознавания картинок CAPTCHA.

Ручное распознавание

Есть еще способ «ручного распознавания», использующий людей и ресурс сайтов с большим трафиком, например, порносайтов. Робот скачивает CAPTCHA с интернет-сервиса и показывает его пользователю порносайта, с просьбой ввести код, который он видит на картинке. Взамен пользователь получает доступ к ресурсу, а робот узнает код, изображенный на картинке («метод леммингов»). Вариантом этого метода является сервис Captcha Exchange Server, запущенный в марте 2007 и направленный на обход картинок CAPTCHA, используемых файлообменниками. Принцип работы сервиса основан на системе баллов, которые пользователь может заработать, распознав картинки для других пользователей, и позже потратить, запустив программу автоматического скачивания с файлообменников, при этом картинки будут распознаны другими пользователями сервиса. Таким образом пользователь может оптимизировать затраты своего времени и денег, набирая баллы, когда он все равно находится у компьютера, и тратя их, когда ему более удобно скачивать (например в случае, если ночью доступ в интернет обходится дешевле).

Несмотря на уязвимости, это не означает, что любая CAPTCHA-защита бессмысленна. Тут наблюдается извечный принцип соревнования оружия и защиты.

Форумный движок phpBB обладает большим количеством достоинств, он удобен и для пользователей и для модераторов и, как следствие, очень популярен. Но именно популярность порождает его главный недостаток — его спамят, причем спамят в автоматическом режиме. Через некоторое время постоянный поток регистраций новых фейковых пользователей и спам сообщений от них может порядком поистрепать нервы администрации сайта.

PhpBB версии 3.* в базовой поставке содержит аж 4 варианта каптчи, которые можно предлагать пользователям при регистрации на форуме. Есть даже recaptcha , однако для автосабмиттеров, как показывает практика, это не помеха.

Эти программы знают как выглядят типовые точки входа на страницы регистрации различных форумных движков. Знание это основано на распознавании DOM-моделей вебстраниц, содержащих формы для регистрации новых пользователей, для постинга сообщений и так далее. То есть, например, в случае phpBB робот знает, что точка входа для регистрации находится по адресу /ucp.php?mode=register и что на этой странице есть кнопка вида:

Не вдаваясь в технические подробности, отмечу что найти и нажать эту кнопку в html-документе уже можно как минимум по id или по name.

Как только робот добирается до страницы с каптчей, он получает картинку каптчи и пытается распознать её. Тут могут применяться различные технологии, в зависимости от изощренности программы, от OCR-алгоритмов до простого распознавания каптчи живым человеком. Именно поэтому защита не срабатывает. Бан IP-адресов на форуме также абсолютно бесполезен, так как роботы спамят через многочисленные прокси сервера. В этом смысле нет разницы банить адреса или чистить новые авторегистрации, всё так или иначе сводится к потере времени.

Получается, что единственный способ отсечь автосабмиттеры — немного видоизменить разметку точки входа на форум уникальным образом. Еще года два-три назад для phpBB2 я проделал такой фокус и это сработало — автоматические регистрации прекратились. Тоже самое недавно удалось подтвердить на другом сайте, уже на движке на phpBB3.

Далее я приведу конкретный проверенный пример видоизменения страницы регистрации phpBB. Однако хотелось бы оговориться, что данный пост предлагает концепцию защиты от автоматических регистраций на форумах, а не конкретные способы. Всё зависит от рук и головы администратора форума. Желательно обладать элементарными знаниями html и css. Если читатели начнут массово копировать данный способ, то эту «эвристику» спамеры запрограммируют в свой софт и автоматические регистрации продолжатся.

Итак, выбираем настройках phpBB форума самую простую каптчу «CAPTHA без GD».
Выглядит в браузере (FF3) это так:

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

Собственно атрибут src в теге img и содержит картинку с каптчей. Открываем фолдер с текущей темой, установленной на форуме. В моем случае это prosilver: /forum/styles/prosilver/template. В нём находим файл captcha_default.html. Если посмотреть в этот шаблон, то видно место, в котором формируется вышеупомянутая разметка:

Лёгким телодвижением усложним жизнь автосабмиттерам:

Выглядеть в браузере это будет теперь так:

Согласен, не очень красиво, зато нервы админа теперь будут в порядке. Обычные пользователи по-прежнему могут регистрироваться. Разумеется, при апгрейде движка на более новую версию нужно будет не забыть проделать этот фикс еще раз. Надеюсь, что храбро-phpbb-пользователи не будут зацикливаться на данном примере, а придумают другие способы изменения точки входа согласно предложенной концепции защиты.