Эффективные способы защиты от парсинга сайта
20 июня 2019

Эффективные способы защиты от парсинга сайта

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

Системы парсинга работают автоматически. В результате позиции продвигаемого сайта могут снижаться.

Как защититься от парсинга сайта?

Какие методы по защите наиболее эффективны? Разберемся с вопросами далее.

Новый эффективный способ защиты от парсинга сайта


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

Google Captcha разгадывание изображений

Google придумал как решить проблему с такими неудобствами. Решение заключается в анализе данных об активности пользователей.

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

Google Captcha проверка трафика

Итак, сейчас в сервисах Google используется новое решение по защите от ботов. Подобное решение доступно для всех пользователей.

reCAPTCHA является бесплатным сервисом, который позволяет защитить сайт от парсинга и спама.

Ссылка на сервис — reCAPTCHA.

Ссылка на документацию — Документация по reCAPTCHA.

На практике через Google reCAPTCHA API можно получить данные о том, является клиент роботом или нет.

По каждому из клиентов Google передает числовое значение по шкале от 0.1 до 0.9.

Защита от парсинга

Примеры значений:

  • 0.9. Означает, что клиент с высокой вероятностью является пользователем. При таких значениях никаких дополнительных проверок и ограничений на использование сайта создавать не следует;
  • 0.3. Означает, что клиент скорее пользователь, нежели робот. Для клиентов с такими значениями имеет смысл иногда проводить дополнительную проверку. Например, проверку можно проводить во время подозрительной активности или при пиковой нагрузке на сервер сайта;
  • 0.1. Означает, что клиент скорее робот, нежели пользователь.

На базе полученных значений следует выстраивать дальнейшую цепь действий.

При значении 0.3 имеет смысл не выводить рекламные блоки, чтобы не занижать значение параметра кликабельности.

Значение 0.1 является лишь поводом для того, чтобы присмотреться к клиенту. Нет смысла блокировать клиентов с таким значением. Такие значения могут получать реальные пользователи. Например, из практики было замечено что значение 0.1 получают клиенты Мегафона, оператора мобильной связи.

В идеале правильным решением будет создание процесса с дополнительной проверкой. Как лучше организовать процесс проверки? Например так:

  • При 0.9 никаких дополнительных проверок проводить не следует;
  • При 0.3 проводить проверки иногда;
  • При 0.1 проводить проверки, например с использованием текстовой капчи.

После прохождения дополнительных проверок следует использовать cookies для сохранения результатов, иначе пользователям придется часто проходить проверки, что является не здравому смыслу.

Итак, на практике использование сервиса reCAPTCHA помогает убедиться в том, что посетитель сайта является реальным человеком.

Но при использовании мотивированного трафика проверку капчами можно обходить в реальном времени.

Например, такие сервисы как 2Captcha и ruCAPTCHA помогает обходить любые типы капч.

Для графической капчи стоимость составляет не более 44 рублей за 1000 решений.

В случае с reCAPTCHA стоимость составляет от 160 рублей за 1000 решений.

Ссылка на сервис ruCAPTCHA — ruCAPTCHA.

Ссылка на сервис 2captcha — 2captcha.

Еще один способ по защите от парсинга сайта — Ловушка для ботов


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

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

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

Защиты от парсинга сайта и DDoS - без ловушки

К примеру, в качестве такой ссылки может быть прозрачная картинка размером 1 на 1 пиксель.

Защиты от парсинга сайта и DDoS - Ловушка для ботов

Анализ свойств IP-адреса


Еще для сегментации запросов на пользовательский трафик и обращения роботов можно использовать анализ свойств IP-адреса клиента.

Зачастую у роботов в свойстве type прописано значение hosting или business.

Запись hosting как инструмент для обнаружения ботов

В случае с пользовательским трафиком, в свойствах IP в type обычно задано значение isp. Исключением являются случаи с использованием прокси.

Запись isp как инструмент для обнаружения ботов

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

  • Парсинг сайта;
  • Увеличение нагрузки на сайт, которое превышает пропускную способность канала, что приводит к проблемам с загрузкой сайта;
  • DDoS атака на сайт.

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

Как выстроить систему так, чтобы были минимальные потери? Требуется найти решение для следующей задачи:

  • Закрыть доступ к сайту для черных роботов;
  • И оставить открытым доступ к сайту для белых роботов. К белым роботам могут относиться краулеры разных поисковых систем и социальных сетей.

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

Для решения задачи требуется провести анализ IP адресов, которые используют роботы. В результате весь список должен быть поделен на 2 списка:

  • Белые роботы. В список должны попасть действительно белые роботы и роботы, которые с высокой вероятностью являются такими;
  • Черные роботы.

Как создать белый список роботов? Для ответа на данный вопрос следует проанализировать большие объемы данных о роботах.

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

Признак следующий — у белых роботов есть PTR запись. У черных роботов значение в PTR записи встречаются реже.

PTR записи используются как инструмент для получения имени хоста (hostname) по IP-адресу.

Пример hostname:

Распознавание бота по PTR записи

Применять анализ следует только к трафику роботов, так как в случае с пользовательским трафиком PTR не используется в принципе.

Распознавание ботов по Hostname

Сервисы для защиты от парсинга сайтов


Одними из наиболее популярных сервисов по защите от парсинга являются CloudFlare и Distil Networks.

CloudFlare предоставляет возможности по защите сайтов на бесплатной основе, но есть и платные тарифы.

На бесплатном тарифе используется примитивный способ защиты.

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

Сервис для защиты от парсинга сайтов

Подобное решение не является эффективным, так как создает неудобства для значимой части аудитории сайта.

Сервис представляет интерес в редких случаях. Например, если речь идет про такие сервисы как конструкторы сайтов или про создание сети PBN сайтов, то CloudFlare может быть эффективным решением.

В большинстве случаев все PBN сайты находятся на одном кластере или даже одном сервере. Доменные имена у всех сайтов разные. IP адреса разные за счет проксирования. В таком случае при использовании CloudFlare, если на любой из сайтов происходит DDoS атака, то перестает работать только один сайт, а не вся сеть.

Рекомендованные материалы в блоге MegaIndex по теме private blog networks по ссылкам далее:


Для проектов с большими бюджетами рекомендуется использовать системы на основе Google reCAPTCHA и анализа роботов.

Крупные западные коммерческие сайты используют решение Distil Networks. Сервис Distil Networks является платным решением, но и платные решения не способны защитить сайт наверняка. В принципе такие сервисы лишь помогают увеличить затраты на парсинг или DDoS атаку. Навредить сайту остается возможным, но затраты на такое мероприятие для атакующей стороны возрастают.

Вопросы и ответы


Что такое парсинг сайта?


Парсингом сайта называется комплекс мер по извлечению данных с сайта. Впоследствии скопированный контент может использоваться для разных целей, например для продвижения иных сайтов или аналитики.

Как закрыть сайт от парсинга сервисами


Закрыть сайт от конкурентной разведки можно используй скрипт с сайта indexoid.

Пример директив сервера для файла htaccess на запрет:

Options FollowSymLinks ExecCGI
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[^4]* /404 [L,S=4000]

	RewriteEngine on
	RewriteCond %{HTTP_USER_AGENT} ".*AhrefsBot.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*MJ12bot.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*rogerBot.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*MegaIndex\.ru/2\.0.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*YandexBot.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*ia_archiver.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*bingbot.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*Baiduspider.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*archive\.org_bot.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*BLEXBot.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*LinkpadBot.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*spbot.*" [OR]
	RewriteCond %{HTTP_USER_AGENT} ".*Serpstatbot.*"
	RewriteRule ".*" "-" [F]

Для каких целей применяется парсинг сайтов?


Парсинг сайтов применяется для целей разного характера. Например:

  • Копирование статей для размещения на конкурентных сайтах;
  • Копирование отзывов;
  • Анализ данных;
  • Мониторинг цен;
  • Сравнение цен;
  • Агрегация данных для создания каталогов;
  • Анализ изменений на сайте;
  • Управление онлайн-репутацией в интернете;
  • Копирование части содержания, например титров;
  • Мониторинг новостных потоков;
  • Копирование данных о прогнозе погоды;
  • Прочее.

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

Законно ли использовать парсинг сайтов?


В большинстве стран никаких законов в отношении парсинга нет.

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

Например:

  • Закон об авторском праве (Copyright infringement);
  • Закон о компьютерном мошенничестве и злоупотреблениях (CFAA);
  • Использования защиты на движимое имущество, так называемый Trespass to chattels.

Какие еще есть способы защиты от парсинга?


На большинстве сайтов размещается страница с Правилами использования сайта/Terms of use. В данном документе можно написать о запрете на копирование данных с сайта. Но правовой статус такого заявления не ясен.

Дополнительные способы защиты:

  • Блокировка IP-адреса по списку или на основе таких критериев, как геолокация и/или черного списка DNS. Это также заблокирует весь просмотр с этого адреса;
  • Блокировка по значению, указанному в строке user agent;
  • Блокировка по значению, указанному в PTR записи;
  • Парсеры могут быть заблокированы путем анализа клиента на получение избыточного трафика;
  • Использование файла robots;
  • Система анализа поведения пользователя для вычисления роботов с использованием таких данных: движение курсора, координаты нажатия на кнопки и прочее;
  • Обфусцирование стилей;
  • Динамическое изменение имен классов и кода сайта, без изменения результата для пользователя. Например, изменение стилей и верстки страницы.

Еще есть вариант использовать черные списки DNS, называемые еще как Domain Name System-based Blackhole List (DNSBL) или DNS Real-time Blackhole List (DNSRBL).

При использовании DNS black list происходит следующее:

  • Сервер сайта устанавливает соединение с DNSBL;
  • Система проверяет наличие в базе IP-адреса клиента, от которого пришел запрос на сайт;
  • При положительном ответе считается, что происходит попытка парсинга или DDoS;
  • Сервер отправителя получает ошибку 500, то есть отказ на запрашиваемые данные.

Выводы


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

От парсеров следует защищаться по ряду причин. Например:

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

Что следует сделать для того, чтобы защититься от подобного копирования? Для защиты сайта от парсинга используйте способы приведенные выше. Например:

  • Идентифицируйте роботов на основе данных о трафике, к примеру используя Google reCAPTCHA;
  • Создайте белый и черный списки роботов;
  • Настройте систему анализа и блокировки роботов.

Подобные действия могут быть автоматизированы.

Итак, парсеры можно заблокировать с помощью проверок на основе капч и аналитике трафика.

Результат следующий:

  • Защита от парсинга сайта;
  • Снижение нагрузки на сервер сайта. Увеличение скорости загрузки страниц;
  • Защита от спама, который роботы создают для усложнения выполнения работ по аналитике;
  • Блокировка спама в комментариях;
  • Защита от анализа сайта злоумышленниками с использованием роботов;
  • Защита от подбора паролей;
  • Защита от сервисов конкурентной разведки;
  • Защита от анализа сайта роботами на предмет возможности XSS и SQL инъекций.

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

Что сделать, если контент уже скопирован? Если контент уже скопирован, то есть варианты удалить контент или извлечь пользу из копии. Рекомендуемые материалы в блоге MegaIndex по ссылкам далее:


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

Цена таких мероприятий как парсинг и DDoS атаки будет значимо увеличена.

При этом использование сервиса Google reCAPTCHA является бесплатным.

Защититься полностью от парсинга сайтов или DDoS невозможно, но можно снизить нагрузку на сайт и отбить большинство атак.

Остались ли у вас вопросы, замечания или комментарии по теме защиты сайтов от парсинга?

Обсуждение

Art.Bodnaruk
12:15 21 июня 2019
А ловушка для ботов работает во всех случаях? Может ли бот обходить такое?
specialist-seo
13:20 21 июня 2019
Ловушка работает, если робот будет собирать ссылки, после автоматом переходить. Поисковые роботы тоже будут. Когда база собрана, нет смысла переходить по страницам.
Дмитрий Угниченко
15:02 24 июня 2019
Ловушка для ботов работает в тех случаях, если бот сканирует сайт. Бывают случаи, при которых бот настраивается для сбора контента с сайта с учетом шаблона. В таких случая ловушка работать не будет, но на такие случаи есть иных параметров для аналитики.
Art.Bodnaruk
12:29 21 июня 2019
Есть ли кейсы по тому как меняется трафик при использовании капчи и доп проверок на сайте?
specialist-seo
13:22 21 июня 2019
CloudFlare часть IP в бане РКН, так что может существенно срезать, из-за ограничений провайдера.
webapteka
15:06 21 июня 2019
Это уже не актуально. Те IP что в бане, и на них без проблем висят сайты, ограничений никаких нет.
Дмитрий Угниченко
15:03 24 июня 2019
Точных данных нет, так как нет экспериментов. Исходя из данных о зависимости скорости загрузки сайта и конверсий, есть гипотеза о том, что трафик может существенно уменьшаться.
boss
12:35 21 июня 2019
то есть это защита и от ботов яндекса тоже? и соответственно сайт перестанет индексироваться?
ну хорошая защита, че.
Дмитрий Угниченко
11:56 25 июня 2019
Для всех поисковых ботов доступ остается открытым посредством использования белого листа ботов.
archosaur2
12:59 21 июня 2019
Средствами веб сервера вы можете блокировать ботов - модуль mod-evasive.
Простое дешевое решение которое банит ip адреса парсеров отдавая им 403 ошибку. Полезно добавить нужные ip в белый список. Особенно актуально если парсеры любят укладывать вашу vps.
Дмитрий Угниченко
11:56 25 июня 2019
Спасибо за отклик!
specialist-seo
13:18 21 июня 2019
Про самый простой способ забыли, по user agent средствами сервера, от школьников защитит, от профи мало что поможет.
info
09:03 24 июня 2019
Читайте внимательно статью, прежде чем кинуть упрек.
specmihey
13:27 21 июня 2019
fake user agents in Python 3 - каждый раз создает нового юзера, как будто настоящего, даже защищенный similarweb.com вскрывается. Будете закрывать контент с помощью капча? Тогда поисковые роботы перестанут индексировать страницы.
specialist-seo
13:30 21 июня 2019
Посмотрите логи сервера, много ботов которые нормально представляются, но нагрузку даже на нулевые сайты дают достаточно большую, например AhrefsBot, SemrushBot, LinkpadBot
Дмитрий Угниченко
11:56 25 июня 2019
У поисковых ботов остается доступ к сайту, так как такие боты находятся в белом списке.
stalkerug
13:31 21 июня 2019
все пункты приведенные в статье мало чем помогут от реального парсинга, я опытный пользователь парсера CD x1 и там все это обходится и капча и юзер агенты и клоуд.
вообщем не надо параною наводить кому надо тот спарсит а такими способами навредить можете себе больше
Дмитрий Угниченко
10:59 26 июня 2019
Закрыть сайт от парсинга нельзя, но можно максимально повысить затраты на данное мероприятие. Проверено на крупных проектах. Никаких проблем при использовании метода с капчей и списками не бывает.
parktechno
13:46 21 июня 2019
Уже несколько лет на своих сайтах блокируем вредных левых ботов и ботов от всяких сервисов типа majestic, ahrefs и других. Нагрузку на сервер заметно увеличивают, а пользы никакой. Скорее вред, т.к. подобные сервисы потом продают по подписке аналитику твоего проекта. Кстати, без твоего разрешения ) Для сайтов на вордпрессе уже давно существует мощное по для решения подобных задач. На других платформах такого не встречал. Отсечь ненужных ботов и оставить нужных на самом деле достаточно легко. Просто не блокируйте ботов от поисковиков и будет вам счастье!
info
14:22 21 июня 2019
Всё это ерунда, что в статье написана, и от парсинга ну никак не спасёт.
Капча? Антикапча стоит недорого, но юзеры вас за капчу на каждой странице прибьют, ведь часто у многих юзеров один айпи, они под натом, ходят с мобильных сетей - вы, вообще, себе враг, что ли?
Юзерагенты? А рандом не хотите ли?
Ханипот? Ну так пока "ваши специалисты" будут вырабатывать стратегию, просто берется другая впс за два бакса и всё заново :D
Если хотите от парсинга защититься, единственный нормальный способ - конфигурить сервер таким образом, чтобы он отсекал соединения при большом числе запросов за определенный интервал времени. Так парсинг затягивается, но возможен - проксики.
Самая крутая защита - у яндекс-сервисов. Но и их парсят. Так что, не парьтесь.
Дмитрий Угниченко
11:04 26 июня 2019
Спасибо за комментарий! В целом следует и конфигурацию сервера настроить, и капчу следует не просто поставить для всех, а использовать скоринг, а также задействовать белые и черные списки. При комплексном подходе большинство реальных пользователей не встречается с капчей никак. Так расписано и в статье.
dimuska139
15:03 21 июня 2019
От парсинга защититься невозможно вообще никак. От глупых школопарсеров, может быть, и спасет то, что в статье указано. Но если человек целенаправленно решил получить контент вашего сайта, то перечисленные методы не спасут вообще никак. Если хотите защититься от парсинга, предоставьте людям удобное апи, чтобы они могли по нему получать данные, не насилуя ваш сайт. Потому что опять-таки, если людям нужен контент вашего сайта, они его все равно получат. Вопрос лишь в том, сколько сил у них на это уйдет - а так ли уж это важно?
Dante-Diabolic
16:13 21 июня 2019
+1 за CF, только не с капчей а с проверкой браузера. Еще трабла - почти все ловилки для ботов, рекапчи и пр. дают погрешность, и принимают пользователя за бота - проблема в реквестах. Дело в том, что и у бота и у человека могут быть реквесты с разным значением delay (кто в ЯП, тот поймет), и рекапчи могут пропускать парсеры, и резать юзеров. Да и потом - вводить капчу в интернет-магазине в 2019 году мало кто хочет :)
web-77
16:59 21 июня 2019
тема раскрыта не полностью думаю - ничего не написано про записи в htacces
Дмитрий Угниченко
09:57 1 июля 2019
Спасибо за отклик! Добавил информацию по блокировке роботов с использованием htaccess.
infernal768
21:20 21 июня 2019
Средина 2019 года - статья про recaptcha?
Really?
Дмитрий Угниченко
15:02 24 июня 2019
Для большинства сайтов темы парсинга и DDoS актуальны. Большинство сайтов не адаптированы к таким угрозам. Решение в виде капчи имеет смысл и является эффективным на практике.
vaselcaseras
08:03 24 июня 2019
сейчас попробую спарсить сайт мегаиндекса
Дмитрий Угниченко
09:59 1 июля 2019
MegaIndex защищает данные внутри сервиса, которые предоставляются на бесплатной основе. Попытки парсинга происходят регулярно. Система защиты выстроена и попытки пресечены.
seo1
11:03 2 июля 2019
Получилось?
market
09:05 24 июня 2019
Ощущение что статью прогнали через гугл переводчик, криво не по русски написано.
Дмитрий Угниченко
15:02 24 июня 2019
Спасибо за отклик. Вы скорее говорите про определенный стиль. Статья написана "от руки", но специально так, чтобы легко и быстро читалась, а также не было двусмысленностей. Такой стиль многим нравится. Если у вас есть замечания, буду рад выслушать.
greenfoxua
01:14 25 июня 2019
А если парсер на selenium с родными cookies из браузера, как будешь обходить, умник ?
Юрий Бедулин
11:46 26 июня 2019
1) в погоней за ботами обнаружил всемирный белый список из 5.000 ботов ... но выделить бота Бинга так и не смог -- т.е. затраты на ручками сделать систему защиты экономически неадекватны.
2) встретил полезных парсеров-плагиатчиков, создающие у себя контент со ссылкой на наш сайт -- т.е. прирост ссылочной массы.
3) если ли у Вас статистика по ссылке-ловушке - каков % ботов на сайтах? "Роботность" Я-Метрики кажется не адекватной. Согласны?
4) боты сайта ... безобидны, если не входят по ... нашей рекламе. Есть ли статистика %% ботов в контексте и таркетинге?
sapnanarang011
13:33 26 июня 2019
looking for service
tapanb091
14:26 11 июля 2019
This post is very helpful, we need this.
K0nstantin86
11:17 24 июля 2019
А я на своем сайте преобразую текст в картинку(как в капче) и не парюсь. Плюс людям, которые хотят поделиться инфой с моего сайта, приходится давать ссылку на страничку, так как нельзя скопировать даже стандартными методами
Дмитрий Угниченко
16:42 26 июля 2019
При реализации данного способа нет возможности использовать текстовые факторы ранжирования для продвижения сайта. Картинку можно перевести в текст автоматически. Далее разместить на сайте.
K0nstantin86
18:47 26 июля 2019
не обязательно весь текст на сайте таким образом делать
да и не любой текст легко конвертировать обратно, в противном случае в капче не было смысла, не много фантазии и это серьёзно усложнит задачу парсерам и не будет мешать пользователям
Для добавления комментария, пожалуйста, авторизуйтесь