Антибот-системы. Как они работают и можно ли их обойти?
Антибот-системы — это технологии, которые помогают защитить веб-сайты от автоматического вмешательства, например, от спама или DDoS-атак. Но автоматическое взаимодействие с сайтом не всегда несет вред: например, иногда боты нужны для тестирования безопасности, построения поискового индекса или сбора данных из открытых источников. Для того, чтобы выполнять такие задачи, необходимы инструменты, которые позволяют избегать блокировки антибот-системами.
903 открытий5К показов
Реклама. Рекламодатель: ООО «Финвин технолоджис» УНП 193103836, erid: LjN8KARWp
Чтобы понять, как можно обойти антибот, сначала нужно разобраться, какие виды защиты существуют и как они устроены.
Как антибот выявляет ботов?
Антибот собирает большой объем разноплановой информации о каждом посетителе сайта. Эта информация анализируется, и если какие-то из параметров выглядят как не характерные для пользователя-человека, то подозрительного визитера блокируют или отправляют решать капчу и доказывать свое гуманоидное происхождение.
Информацию собирают обычно на трех уровнях: сетевом, поведенческом и на уровне браузерного отпечатка.
- На сетевом уровне антибот анализирует запросы, проверяет заспамленность IP-адреса и заголовки пакетов. Тот, чей IP-адрес фигурирует в “черных списках”, принадлежит дата-центрам, относится к сети Tor, или выглядит подозрительно по другим параметрам, может получить капчу. Вы могли сталкиваться с таким в обычной жизни, когда при использовании IP-адреса, выданного вам каким-нибудь бесплатным VPN, Google выдавал вам капчу.
- На уровне браузерного отпечатка антибот собирает информацию о браузере и устройстве, на основе которого создается фингерпринт устройства. В этот фингерпринт обычно входит тип, версия, языки браузера, разрешение экрана, размеры окна, аппаратные шумы, системные шрифты; медиа-устройства и многое другое.
- На поведенческом уровне некоторые продвинутые системы изучают, насколько действия пользователя совпадают с поведением обычных посетителей сайта.
Существует много антибот-систем, детали функционирования каждой из которых могут сильно отличаться и меняться со временем. Среди популярных решений можно назвать:
- Akamai
- Cloudflare
- Datadome
- Incapsula
- Casada
- Perimeterx
Понимание того, какая именно антибот-система защищает сайт, может быть полезным для того, чтобы выбрать лучшую тактику обхода. Часто в профильных ветках форумов и Discord-каналах целые разделы посвящены методам обхода конкретных антибот-систем. Например, такую информацию можно найти на The Web Scraping Club.
Определить, какая именно антибот-система работает на сайте, можно, например, с помощью расширения Wappalyzer.
Как обойти антибот?
Чтобы система не смогла обнаружить автоматизацию, нужно обеспечить достаточный уровень маскировки на каждом из уровней. Сделать это можно несколькими способами:
- использовать самописные решения и поддерживать инфраструктуру самостоятельно;
- воспользоваться платными сервисами вроде Apify, Scrapingbee, Browserless или Surfsky;
- комбинировать качественные прокси, капча-решатели и антидетект-браузеры;
- использовать стандартные браузеры в хедлесс-режиме с undetect-патчами;
- еще много вариантов разной степени сложности.
Маскировка на сетевом уровне
Чтобы бот был защищен на сетевом уровне, необходимо использовать качественные прокси. Конечно, какие-то простые задачи можно выполнить с одного, вашего собственного IP-адреса — но в этом случае вы вряд ли сможете собрать какой-то существенный объем данных. Чтобы отправлять десятки тысяч запросов на регулярной основе, вам понадобятся хорошие резидентские или мобильные прокси, которые не были засвечены в черных списках.
Параметры, на которые стоит обратить внимание при выборе прокси:
- Есть ли IP-адрес в спам-базах. Это можно узнать с помощью чекеров вроде PixelScan, или проверив адрес по базе iplists.firehol.org
- Есть ли утечка по DNS. При проверке с помощью любого подходящего чекера типа DNS Leak Test в списке серверов не должно быть вашего настоящего.
- Правильный ли тип провайдера прокси. Менее подозрительные будут принадлежать интернет-провайдерам.
Более подробно о том, как проверить качество прокси, можно узнать здесь.
Также для веб-скрейпинга полезны ротационные прокси. Они дают много IP-адресов, а не один. Это уменьшает шанс, что бот, собирающий информацию, будет заблокирован, так как сайту сложнее найти закономерности в запросах. Ротационные прокси распределяют запросы между многими IP, снижая риск блокировки из-за большого количества запросов с одного IP.
Маскировка фингерпринта
Для подмены браузерного отпечатка отлично подойдут антидетект-браузеры. Наиболее качественные из них, такие как Octo Browser, подменяют отпечаток на уровне браузерного ядра и позволяют создавать большое количество браузерных профилей, каждый из которых будет выглядеть как отдельный пользователь.
Скрейпить данные с помощью антидетект-браузера можно с помощью любой удобной библиотеки для браузерной автоматизации. Можно создавать нужное количество профилей с настройками отпечатков, прокси, кук без необходимости открытия клиента и в последующем их использовать как в режиме автоматизации, так и в ручном режиме.
Работа с помощью антидетект-браузера не намного сложнее, чем через обычный браузер в headless-режиме. В Octo Browser есть подробная документация с детальными инструкциями по подключению к API для всех популярных языков программирования.
Профессиональные антидетект-браузеры позволяют удобно работать с большим количеством браузерных профилей, подключать прокси и с помощью продвинутой системы подмены цифрового отпечатка получать доступ к данным, которые недоступны при обычном скрейпинге.
Имитация действий настоящих пользователей
Для обхода антибот-систем также необходимо эмулировать действия реальных пользователей: задержки, имитация движений курсора, ритмичное нажатие клавиш, случайные паузы и нерегулярные паттерны поведения. Также очень часто требуется авторизация, нажатие кнопок «Читать дальше», переход по ссылкам, отправка форм, прокручивание ленты и так далее.
Имитировать действий пользователя можно, например, с помощью популярного опенсорсного решения для браузерной автоматизации Selenium, однако есть и другие варианты, такие как MechanicalSoup, Nightmare JS и др.
Чтобы скрейпинг выглядел для антибота более естественно, рекомендуется добавлять к запросам временную задержку с нерегулярным интервалом.
Выводы
Антибот-системы защищают веб-сайты от автоматического вмешательства, анализируя сетевую, браузерную и поведенческую информацию пользователя. Для обхода антибот-систем необходимо обеспечить маскировку на каждом из этих уровней.
- На сетевом уровне можно использовать качественные прокси, особенно ротационные.
- Для подмены браузерного отпечатка подойдут антидетект-браузеры, такие как Octo Browser.
Для имитации действий настоящих пользователей можно использовать инструменты для браузерной автоматизации, такие как Selenium, добавляя временные задержки и нерегулярные паттерны поведения.
903 открытий5К показов