Защита от автоматической регистрации thee. Как защитить форум на движке 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), однако при этом может существенно пострадать его индексируемость поисковиками.

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

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

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

Проблема бизнеса

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

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

Проблемы, с которыми может столкнуться вендор:

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

Решение для бизнеса

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

Защита интеллектуальной собственности
  • Противодействие реверс-инжинирингу и анализу кода;
  • Защита программы от взлома и модификации;
  • Защита от бесконтрольного распространения софта;
  • Возможность реализации собственных механизмов защиты.
Безопасное лицензирование продуктов
  • Поддержка практически любых схем лицензирования;
  • Защита от нарушения лицензионных условий
  • Поддержка полного цикла продаж - от первичной отгрузки до удаленного обновления лицензии;
  • Технология создания индивидуальных лицензионных условий под клиента;
  • Возможность реализации собственных алгоритмов монетизации.
Эффективное использование технологий

Форумный движок 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-пользователи не будут зацикливаться на данном примере, а придумают другие способы изменения точки входа согласно предложенной концепции защиты.

И я представлю вам один из необходимых плагинов (расширений), а именно средство для защиты сайта от спама . Конкретно, речь пойдет о плагине 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-пользователи не будут зацикливаться на данном примере, а придумают другие способы изменения точки входа согласно предложенной концепции защиты.