Что такое защита от роботов. Защита от спам-роботов

Авторами поисковых запросов могут быть не только пользователи, но и роботы. При большом потоке запросов от роботов могут быть превышены ограничения , наложенные на использование Яндекс.XML .

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

Для использования алгоритма защиты от роботов партнер должен передавать сведения об IP-адресе и куке spravka автора запроса. Кука spravka формируется на стороне Яндекс.XML и возвращается при первом обращении пользователя за результатами поиска. В полученном значении партнер должен заменить домен на свой, а затем добавить следующую строку к поисковому ответу:

Set-Cookie: spravka=...

Сведения об IP-адресе и куке spravka передаются в заголовке запроса в формате:

X-Real-Ip: 99.999.999.99 Cookie: spravka=

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

Поисковый запрос отправляется сервису Яндекс.XML . Запрос должен соответствовать заданному формату .

Яндекс.XML инициирует выполнение алгоритмов защиты от роботов. Для проверки используются значения IP-адреса и куки spravka (если ранее выставлена).

Возможные результаты проверки:

  • Предположительно, запрос отправлен не роботом. Выполняется переход к пункту .
  • Предположительно, запрос отправлен роботом. Принимается решение об отображении CAPTCHA.
  • Яндекс.XML возвращает партнеру XML-файл следующего формата: Robot request http://captcha.image.gif Идентификационный номер CAPTCHA Статус
  • Пользователю возвращается страница, содержащая CAPTCHA.
  • Пользователь отправляет значение CAPTCHA партнеру.
  • Партнер отправляет полученное от пользователя значение CAPTCHA GET-запросом следующего формата: https://yandex.ru/xcheckcaptcha?key= & rep=
  • Полученное значение проверяется сервисом Яндекс.XML . Если введено некорректное значение CAPTCHA, выполняется переход к пункту . При этом в параметре captcha-status передается значение «failed» .

    Если введено корректное значение CAPTCHA, Яндекс.XML выставляет пользователю куку spravka и передает ее партнеру в заголовке следующего формата:

    HTTP/1.1 200 OK Set-Cookie: spravka= < значение куки >

    Если запрос, переданный в Яндекс.XML на шаге был успешно сохранен, выполняется переход к шагу .

  • Партнер предлагает пользователю ввести запрос.
  • Пользователь отправляет запрос партнеру Яндекс.XML .

  • Поисковый запрос отправляется сервису Яндекс.XML . С запросом передается IP-адрес пользователя и кука spravka.
  • Яндекс.XML обрабатывает поисковый запрос и формирует результаты.
  • XML-файл с результатами поиска возвращается партнеру.
  • Партнер возвращает обработанный ответ пользователю. Если на шаге Яндекс.XML выставил куку spravka, она сохраняется у пользователя.
  • Проверка корректного отображения CAPTCHA

    Для ознакомления с форматом ответа, возвращаемого Яндекс.XML в случае отображения CAPTCHA, необходимо отправить в качестве запроса (значение параметра query поискового запроса) следующую строку: «e48a2b93de1740f48f6de0d45dc4192a» .

    Следующий GET-запрос может быть использован пользователем «xml-search-user» для ознакомления с форматом ответа, возвращаемым в случае отображения CAPTCHA.

    Представьте ситуацию: вы открываете отчеты Google Analytics и видите рост реферального трафика. Отлично, думаете вы, появились какие-то жирные внешние ссылки, по которым народ приходит на сайт табунами. Однако анализ показывает, что 90 % реферального трафика идет с какого-то сомнительного ресурса. Более того, под вашими публикациями ежедневно появляются невнятные комментарии в стиле «классная тема, а я вот тут недавно скачал что-то классное и бесплатное». Естественно, комментаторы ссылаются на это самое классное и бесплатное. Похоже, на ваш сайт приходят спам-боты. Как от них защититься и зачем это делать?

    Зачем блокировать и фильтровать спамеров

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


    Как защититься от спам-ботов

    Вы можете воспользоваться тремя способами защиты от спамеров. Первый можно считать самым радикальным и опасным. Второй и третий - это мягкие способы защиты. Для повышения эффективности их можно использовать одновременно.

    1. Заблокируйте спам-ботов с помощью файла.htaccess

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

    Однако блокировка с помощью файла.htaccess имеет и недостатки. Во-первых, спамеры могут легко менять IP-адреса. Во-вторых, вы можете закрыть сайт для нормальных посетителей, которые имеют одинаковый со спамерами «айпишник». Если это вас не пугает, тогда приступайте:

    • Найдите в корневой директории сайта файл.htaccess. Доступ к корневому каталогу обычно осуществляется через FTP в кабинете настроек хостинга.
    • Если соответствующий файл отсутствует, создайте его самостоятельно. Для этого откройте блокнот, создайте файл htaccess.txt, загрузите его в корневую директорию и переименуйте в.htaccess.
    • Чтобы заблокировать спамеров, сделайте в файле следующую запись:

    Order Allow,Deny

    Deny from **.***.***.**

    Deny from **.***.***.**

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

    2. Настройте фильтры Google Analytics

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

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

    • Выберите опцию «Администратор» в горизонтальном меню.


    • В правой колонке выберите меню «Фильтры» и нажмите кнопку «Новый фильтр».


    • Воспользуйтесь встроенным фильтром, чтобы заблокировать нежелательные IP-адреса. Для этого в меню «Выберите тип фильтра» укажите «Исключить», в меню «Выберите источник или цель» укажите опцию «Трафик с IP-адресов», в меню «Выберите выражения» укажите опцию «Идентичные». В поле «IP-адрес» укажите адреса, которые необходимо заблокировать. Сохраните настройки.


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


    Также в меню «Настройки представления» подтвердите опцию «Фильтрация роботов». Дефолтный фильтр Google Analytics может исключить посещения некоторых роботов из отчетов.


    3. Используйте возможности CMS и дополнительные плагины

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

    • Ручная премодерация комментариев.
    • Капча.
    • Защита админпанели сайта от брутфорсинга. Если ваш сайт работает на Wordpress, эта задача решается с помощью плагина Limit Login Attempts .
    • Блокировка спам-комментаторов по IP, использованию спам-слов, электронным адресам. Рекомендации для ресурса на WordPress: в админпанели выберите меню «Настройки - обсуждения». В поле «Черный список» внесите нежелательные «айпишники», электронные адреса, спам-слова. Эту задачу также можно решить с помощью плагина WP-Ban .


    • Антиспам-плагины. Эти программы определяют спамеров алгоритмически. В число наиболее популярных плагинов для WordPress входят Akismet, Anti-Spam, Invisible Captcha, Antispam Bee.

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

    Какую тактику защиты от спам-ботов выбрать

    Если спамеры досаждают вам дурацкой рекламой волшебных пилюль или файлообменников, боритесь с ними с помощью плагинов и программ. Так вы заблокируете большинство автоматических сообщений. Для борьбы с ручным спам-комментированием придется использовать премодерацию. Чтобы очистить статистические данные, настройте фильтры в Google Analytics. А если вы подозреваете, что к вашему сайту целенаправленно пытаются получить доступ злоумышленники, блокируйте подозрительные IP с помощью файла.htaccess. Также вы можете использовать программные средства защиты от взлома. Не забудьте сообщить о попытках несанкционированного доступа к сайту хостинг-провайдеру.

    Адаптация материала How to Stop Spam Bots from Ruining Your Analytics Referral Data by Jared Gardner.

    kak-zashchititsya-ot-spam-botov На сегодняшний день, спам-роботы по уровню технологий, достигают все более высоких вершин. Ведь они каждодневно усовершенствуются и засоряют различные сайты ненужной информацией. Цель спам-робота такова: размещение на сайте ссылки, которая бы указывала на определенный ресурс, web-сервер или же просто на сайты, которые имеют подобную тематическую информацию. Зачастую такие ссылки не нужны. Поэтому со спам-роботами необходимо бороться.

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

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

    Вы, наверняка, не раз замечали, как пользователям трудно угадать код, заключенный в капче. Это происходит из-за того что вебмастера изощренно стараются исказить цифробуквенный код. Это необходимо делать потому, что отдельные установки спам-роботов, научились распознавать капчи. Если для сайта использовать простою капчу, атак спам-роботов не избежать. Чтобы видоизменить собственную капчу или повысить уровень защиты своего сайта, можно использовать добавление image-функций в коды php.

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

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

    Защита от почтового спама на больших почтовых серверах, кажется, вполне наладилась. 2-3 ненужных письма в день – это совсем не то, что было когда-то. Хуже обстоит дело с защитой от рассылки спама на форумы, каталоги сайтов и доски объявлений. Потому что форумов и каталогов тысячи, и каждый должен определить стратегию защиты сам. В принципе, защитить форум (блог, доску объявлений) от спама можно легко, но при этом хорошим пользователям будет общаться намного труднее (доказывать "я не робот" захочет не каждый).

    а) javascript: пользователь видит на странице инструкцию "сосчитайте 2+3 и введите полученное число в следующее поле". Если это простой текст, робот тоже может его прочитать, найти цифры, используя регулярные выражения , и вычислить результат. Можно выражение "2+3" записать в виде такого, например, кода:

    function h2d(h) {return parseInt(h,16);} document.write(String.fromCharCode(h2d("32"),h2d("2B"),h2d("33")));

    Тогда роботу будет недостаточно одного регулярного выражения для вычисления ответа – ему нужно будет интерпретировать javascript, что принципиально сложнее.

    б) cookie: при открытии главной страницы сайта ваш php-скрипт отправляет браузеру короткую инструкцию:

    Setcookie("proverka", "случайное число");

    После этого браузер, если он не робот, должен будет с каждым запросом отправлять на сервер пару "proverka=случайное число". Принимающй тексты от пользователей скрипт проверяет, прислал ли браузер эту проверочную пару. Прочитать куки и отправлять их потом с запросами на сервер – гораздо более простая задача для робота, чем распознавать javascript.

    © 2009, «Деловая неделя», Михаил Гутентог

    90 . Админ

    24.11.2009 01:25:46

    490 . Админ

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

    24.11.2009 01:25:46

    491 . D.M., admin

    Впрочем, возможно, статьи читают сами роботы, а спамеры тут вовсе ни при чём.

    26.11.2009 04:15:49

    500 . Админ

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

    26.11.2009 04:15:49

    177 . bifurcator

    Я у себя так сделал: Текст проверки человечности нарисован в флешке, которая вызывает java-script функцию, рисующую в форме submit кнопку и поле ввода проверочного текста. Получается, что даже если у робота и включенa java, то он не увидит субмит кнопки и поля ввода проверочного текста. А в браузере флешка вызовет функцию, которая для пользователя их нарисует.

    11.11.2010 11:07:25

    178 . Сказка

    Ну, а что помешает роботу "включить" Flash Player и получить оттуда инструкцию для javascript?

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

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