Появился новый способ обхо? ... Как обойти защиту от ботов Cloudflare? Сервис парсинга в 2023 году
Как обойти защиту от ботов Cloudflare? Сервис парсинга в 2023 году...
Появился новый способ обхода антибот-детектора Cloudflare с помощью нового сервиса веб-парсинга: antidetect browsers. Если вы наберёте в Google «Cloudflare bypass», то найдёте сотни статей и ресурсов Github, объясняющих, как обойти Cloudflare (или продающих решение для этого). Причина довольно проста: Решение Cloudflare Bot Management является одним из самых сильных и наиболее используемых средств защиты от ботов, применяемых в Интернете.
Что такое Cloudflare Bot Management
Cloudflare Bot Management — это набор инструментов безопасности, предназначенных для защиты сайтов от вредоносных ботов и автоматизированных атак. Он обеспечивает расширенную защиту от широкого спектра бот-угроз, включая вбивание учетных данных, обход веб-страниц и захват учетных записей. Cloudflare Bot Management включает в себя брандмауэр Web Application Firewall (WAF). Он позволяет предотвратить попадание вредоносного трафика на исходный сервер сайта. Меры безопасности WAF Cloudflare используют передовые алгоритмы машинного обучения для анализа моделей трафика и выявления потенциальных угроз.
Другой важной особенностью Cloudflare Bot Management является возможность разрешения обхода DNS для заведомо исправных ботов. Это позволяет легитимным ботам получать доступ к сайту, не блокируя его средствами защиты. Кроме того, Cloudflare Bot Management обеспечивает целый ряд мер безопасности с помощью своих DNS-записей. IP-адреса Cloudflare DNS позволяют пользователям быстрее и надежнее работать в Интернете.
Cloudflare DNS предназначен для защиты пользователей от фишинга, вредоносных программ и других интернет-угроз. В целом Cloudflare Bot Management обеспечивает надежные и комплексные решения для защиты сайтов от бот-трафика. Описанные выше меры безопасности крайне сложно обойти. Владельцы сайтов могут быть уверены, что их сайты защищены от всех типов ботов и автоматизированных атак.
Действительно ли обход Cloudflare настолько сложен?
— Да. Традиционные меры безопасности основаны на блокировке IP-адресов или CAPTCHA. Решение Cloudflare Bot Management использует передовые алгоритмы машинного обучения для анализа запросов, поступающих на сайт. Таким образом, оно способно естественным образом идентифицировать ботов, интерпретируя их типичные модели поведения. Вот несколько примеров того, что с большой вероятностью могут делать боты:
- Делать большое количество запросов за короткий промежуток времени
- Использовать определенный тип пользовательского агента или IP-адреса
- Имеют непоследовательные/подозрительные отпечатки пальцев
Решение Cloudflare Bot Management сложно обойти еще и потому, что оно постоянно совершенствуется для выявления новых типов ботов, занимающихся парсингом. Компания использует алгоритмы машинного обучения. Это позволяет обновлять методы обнаружения. Это позволяет быстро выявлять и блокировать новые типы ботов сразу же после их появления.
Еще одним камнем преткновения при использовании Cloudflare является то, что это очень индивидуальное решение. Методы, которые работают на одном сайте, скорее всего, окажутся бесполезными для другого. Ранее я уже писал о Cloudflare, предлагая три решения для трех разных сайтов. Однако только два из этих решений остаются работоспособными. В течение последних недель я пытался использовать Playwright с сайтом Antonioli, чтобы обойти Cloudflare. После нескольких страниц я снова оказывался заблокированным, особенно когда выполнение происходило на виртуальной машине на AWS. Итак, правда заключается в том, что не существует серебряной пули против управления ботами Cloudflare. Однако есть решения, которые хорошо работают.
Как Cloudflare обнаруживает ботов?
Cloudflare — это высококлассная сеть доставки контента (CDN) и компания, занимающаяся облачной безопасностью. Она предоставляет услуги по защите веб-сайтов от онлайн-угроз. К таким угрозам относятся и атаки ботов. Cloudflare использует несколько технологий для обнаружения ботов и предотвращения их доступа к веб-сайтам. Остановимся на некоторых методах, используемых Cloudflare для выявления ботов:
- Строки User-Agent. Это фрагменты текста, включаемые в HTTP-запросы, посылаемые веб-браузерами или другими клиентами веб-серверу. Эти строки обычно содержат информацию об операционной системе клиента, типе браузера, его версии и другие важные сведения. Cloudflare может определить источник запроса. Для этого он изучает строки user-agent. Эти строки указывают на то, от кого исходит запрос — от браузера или бота. Боты часто используют общие или устаревшие строки user-agent, что позволяет Cloudflare идентифицировать их.
- Репутация (доверие) IP-адреса. Сеть Cloudflare ведет базу данных IP-адресов, известных своей вредоносной активностью, например рассылкой спама, фишингом и распространением вредоносных программ. Cloudflare может блокировать или оспаривать запросы с IP-адресов с плохой репутацией (также известной как доверие к IP-адресу). Это затрудняет извлечение данных вредоносными ботами. CAPTCHA используется для проверки запрашивающего.
- JavaScript Challenge. Cloudflare может использовать JavaScript-запросы для проверки того, является ли клиент человеком или ботом. При отправке запроса на сайт, защищенный Cloudflare, сервер в ответ отправляет фрагмент JavaScript-кода. Затем этот код должен быть выполнен клиентом. Если клиент правильно выполнил JavaScript-код, то сервер разрешает доступ к сайту. Это означает, что пользователь является легитимным. Клиент должен правильно выполнить JavaScript-код. Если он не сможет этого сделать или не выполнит его вовсе, сервер примет его за бота. Доступ к сайту будет запрещен.
- Ограничение скорости. Еще одним способом обнаружения ботов в Cloudflare является использование ограничения скорости. Эта технология позволяет выявить типичные для ботов модели поведения. Типичным примером является отправка большого количества запросов в течение короткого периода времени. Cloudflare может заблокировать или оспорить эти запросы, вынудив пользователя снизить скорость.
- Отпечатки браузеров — это техника, позволяющая однозначно идентифицировать устройство. Для этого анализируются различные атрибуты устройства, такие как размер экрана, тип браузера и установленные плагины. Cloudflare может использовать эту технологию для создания «отпечатка пальца» каждого устройства, подключающегося к защищенному веб-сайту. Если один и тот же «отпечаток пальца» появляется неоднократно, Cloudflare может предположить, что это бот. Cloudflare также может использовать отпечатки браузеров для обнаружения ботов, которые часто меняют строки пользовательского агента. Поскольку остальные атрибуты устройства остаются неизменными, Cloudflare может использовать их для идентификации запрашивающего как бота.
- Алгоритмы машинного обучения (ML): Cloudflare использует алгоритмы машинного обучения для анализа закономерностей в веб-трафике и точной идентификации ботов. Эти алгоритмы могут научиться распознавать ботов на основе таких характеристик, как количество и частота запросов, типы запрашиваемых ресурсов и IP-адреса запрашивающих. Алгоритмы ML компании Cloudflare также способны быстро адаптироваться к новым угрозам. Может появиться новый тип бот-атаки. Алгоритмы могут учиться на примерах предыдущих атак. Затем они могут скорректировать свои критерии обнаружения ботов.
Cloudflare использует различные технологии для точного определения ботов, пытающихся получить доступ к защищенным сайтам. Они блокируют или блокируют этих ботов до того, как они смогут причинить какой-либо вред.
Методы активного обнаружения ботов в Cloudflare
Вот некоторые из активных методов обнаружения ботов, используемых Cloudflare для обеспечения первоклассной защиты от ботов. Спойлер: они претерпели значительное развитие. В последние годы Cloudflare инвестирует значительные средства в машинное обучение и искусственный интеллект. Это позволило создать более сложные алгоритмы обнаружения ботов. Меры Cloudflare по борьбе с ботами, вероятно, адаптировались по мере развития угроз. Появляются новые типы бот-атак, и Cloudflare не отстает от этих угроз. Они значительно усовершенствовали свои системы ограничения скорости и отслеживания событий. Дополнительно,
CAPTCHAs
CAPTCHA — это эффективный способ предотвращения автоматических запросов со стороны ботов, позволяющий реальным пользователям получать доступ к сайту. Cloudflare использует несколько типов CAPTCHA, таких как CAPTCHA на основе изображений и reCAPTCHA. Они позволяют убедиться в том, что запрашивающий является реальным пользователем.
Эти задачи требуют от пользователей выполнения действий, которые боты не могут легко воспроизвести. Например, идентификация объектов на изображениях или решение простых математических задач. Если пользователь проходит испытание, он получает доступ к сайту. В противном случае доступ к сайту блокируется.
Отпечатки пальцев на холсте
Эта технология позволяет фиксировать уникальные атрибуты браузера пользователя. В качестве примера можно привести тип видеокарты и движок рендеринга. Эти атрибуты создают уникальный «отпечаток пальца», который может быть использован для идентификации пользователей на различных сайтах. Cloudflare использует canvas fingerprinting для обнаружения ботов, использующих поддельные строки пользовательских агентов для скрытия своей личности. Анализируя «отпечатки пальцев» каждого запроса, Cloudflare может определить, от кого он исходит — от легитимного пользователя или бота.
Отслеживание событий
Используется для отслеживания взаимодействия пользователей с веб-сайтом, например, кликов, просмотров страниц и отправки форм. Защита от ботов Cloudflare использует отслеживание событий для анализа моделей поведения пользователей и выявления аномалий, которые могут указывать на активность ботов. Например, если в течение короткого периода времени с одного и того же IP-адреса поступает большое количество запросов, Cloudflare может предположить, что это бот, и заблокировать запросы. Отслеживание событий позволяет Cloudflare точно отличать легитимные запросы пользователей от запросов ботов.
Запросы к API среды
API-запросы используются для сбора информации об окружении клиента, например об операционной системе, типе браузера и разрешении экрана. Cloudflare использует эту методику для выявления ботов, использующих поддельные строки пользовательских агентов или другие методы маскировки своей личности. Анализируя переменные окружения каждого запроса, Cloudflare может обнаружить типичные для ботов модели поведения. Cloudflare может выявить и заблокировать запросы от ботов, если имеется большое количество запросов с одинаковым разрешением экрана.
Репутация (доверие) IP-адресов
Cloudflare ведет базу данных IP-адресов, известных своей вредоносной активностью, например рассылкой спама, фишингом и распространением вредоносных программ. Cloudflare может блокировать запрос с IP-адреса с плохой репутацией или вызывать запрос с помощью CAPTCHA. Cloudflare может использовать репутацию IP-адреса для быстрого определения вредоносных источников. Это позволяет защитить сайты от атак ботов.
Алгоритмы машинного обучения
Они используются для анализа закономерностей в веб-трафике и точного выявления ботов. Алгоритмы могут научиться определять ботов. Для этого они изучают такие характеристики, как:
- Количество и частота запросов
- Типы запрашиваемых ресурсов
- IP-адреса
ML-алгоритмы Cloudflare также могут быстро адаптироваться к новым угрозам. При появлении нового типа бот-атаки алгоритмы могут учиться на примерах предыдущих атак и соответствующим образом корректировать свои критерии обнаружения ботов. Несмотря на то что технологии Cloudflare по защите от ботов эффективно обнаруживают и предотвращают многие типы бот-атак, целеустремленные злоумышленники все же могут их обойти. Однако сложность обхода этих методов зависит от нескольких факторов, включая:
- Изощренность злоумышленника,
- Конкретные методы, используемые Cloudflare
- И мер безопасности, принятых владельцем сайта
Например, CAPTCHA можно обойти с помощью автоматизированных инструментов или передав эту задачу на аутсорсинг работникам в странах с низкой оплатой труда. Аналогичным образом, отпечатки пальцев на холсте можно обойти с помощью виртуальных машин, безголовых браузеров конфиденциальности типа GoLogin или других методов, позволяющих скрыть реальную конфигурацию оборудования устройства.
Однако искушенным злоумышленникам, возможно, будет сложнее обойти некоторые более сложные методы, используемые Cloudflare. Сложнее обойти алгоритмы машинного обучения и API-запросы к среде. Эти методы предназначены для обнаружения тонких моделей поведения. Ботам сложно воспроизвести эти шаблоны, что делает их более устойчивыми к атакам.
Запросы к API среды: уникально, но нормально
Запрос API окружения — это технология, используемая Cloudflare для идентификации ботов путем анализа различных атрибутов клиентского устройства. К ним относятся операционная система, тип браузера и разрешение экрана. Обойти эту методику бывает непросто, поскольку она основана на сборе информации о самом устройстве.
Возможные способы обхода запросов Environment API могут включать в себя:
- Виртуальные машины
- Браузеры, управляющие отпечатками пальцев
- Устройства с поддельными атрибутами
- Использование службы анонимности, которая изменяет или скрывает реальную информацию об устройстве
Однако эти методы не всегда эффективны и могут привести к срабатыванию других мер по борьбе с ботами, применяемых Cloudflare. Оставаться нормальным в Интернете очень сложно. Даже один параметр, измененный случайным образом, немедленно будет обнаружен антибот-программой. А ведь именно нормальность и нужна.
Другой возможный способ обхода запросов Environment API заключается в изменении заголовков HTTP-запросов, отправляемых клиентом бота. Они включают в себя строку user-agent и другую необходимую информацию об устройстве. Однако сложные боты могут обладать способностью точно имитировать эти заголовки. Их трудно обнаружить только с помощью этой техники.
Все имеет значение
В конечном счете эффективность методов защиты от ботов в Cloudflare зависит от того, насколько правильно они реализованы и настроены. Владельцы сайтов, использующие IP-адреса Cloudflare, должны убедиться в том, что они правильно настроили свои меры безопасности. К ним относятся настройка ограничения скорости и правил межсетевого экрана, включение SSL-шифрования, а также мониторинг журналов на предмет подозрительной активности. Применяя проактивный подход к обеспечению безопасности, владельцы сайтов могут гарантировать, что их сайты останутся защищенными от атак ботов.
Способ 1: обход CDN Cloudflare путем обращения к серверу происхождения
Cloudflare обеспечивает DDos-защиту от атак ботов. Он действует как прокси между пользователем и сервером, скрывая исходный IP-адрес. Это может затруднить парсерам доступ к данным с сайтов, защищенных Cloudflare. Однако существуют способы обойти Cloudflare, обратившись непосредственно к исходному серверу.
Найдите IP-адрес сервера происхождения
Первым шагом в обходе Cloudflare является поиск исходного IP-адреса веб-сайта, с которого необходимо получить доступ. Обычно это можно сделать, выполнив поиск DNS по доменному имени сайта. Для выполнения поиска DNS можно использовать команду «nslookup» в терминале. Например:
nslookup example.com
В результате будет получен IP-адрес прокси-сервера Cloudflare веб-сайта. Найдите IP-адрес источника с помощью таких инструментов, как «ping» или «traceroute». Эти инструменты определят путь от вашего компьютера до исходного сервера. Например:
ping example.com
В результате будет возвращен IP-адрес исходного сервера.
Запрос данных с сервера происхождения
Получив IP-адрес оригинального сервера, можно отправлять HTTP-запросы непосредственно на него в обход Cloudflare. Для этого можно воспользоваться инструментом типа cURL или написать собственный сценарий на Python или другом языке программирования. Для выполнения запроса необходимо включить IP-адрес происхождения в URL-адрес запроса, например:
http://[origin IP]/path/to/resource
Также необходимо включить в запрос соответствующие заголовки, например, заголовок «User-Agent». Они помогают имитировать поведение обычного веб-браузера. Можно также включить другие заголовки, такие как «Referer» и «Accept-Language», чтобы запрос выглядел более легитимным.
Способ 2: переопределить приемную Cloudflare
Одной из функций защиты, предлагаемых Cloudflare, является страница «зала ожидания», также известная как режим «Я под атакой». Когда пользователь заходит на сайт, защищенный Cloudflare, его IP-адрес сначала проверяется средствами безопасности Cloudflare. Если IP-адрес отмечен как потенциально опасный, пользователь перенаправляется на страницу ожидания с заданием. Задача, как правило, заключается в решении CAPTCHA или в выполнении задания, требующего взаимодействия со страницей на уровне человека. Это может быть нажатие на определенный элемент или перетаскивание объектов на странице.
Страница ожидания предназначена для защиты сайтов от различных типов атак. К ним относятся DDoS-атаки (Distributed Denial of Service), атаки грубой силы и попытки парсинга. Боты и другие автоматизированные инструменты не могут решить задачу, поставленную на странице зала ожидания. Это фактически блокирует их доступ к сайту.
Чтобы минимизировать воздействие на легитимных пользователей, Cloudflare позволяет владельцам сайтов настраивать страницу зала ожидания. Это делается для соответствия бренду сайта и настройки чувствительности мер безопасности. Чтобы минимизировать воздействие на легитимных пользователей, Cloudflare позволяет владельцам сайтов настраивать страницу зала ожидания в соответствии с брендингом своего сайта и регулировать чувствительность мер безопасности.
Сколько времени требуется для обхода комнаты ожидания Cloudflare?
Время может варьироваться в зависимости от сложности задачи и уровня квалификации пользователя. В некоторых случаях комната ожидания может быть обойдена в течение нескольких минут. В более сложных случаях это может занять несколько часов или даже дней.
На время преодоления комнаты ожидания могут влиять такие факторы, как:
- Использование автоматизированных инструментов
- Тип вызова, используемый Cloudflare
- Уровень безопасности сайта, к которому осуществляется доступ
На некоторых сайтах могут применяться более надежные меры безопасности, например, дополнительные уровни проверки или сложные JavaScript-задачи. Это может сделать обход более сложным и трудоемким. Опытные разработчики и специалисты по безопасности имеют преимущество при попытке обхода. Они знакомы с технологиями, используемыми Cloudflare, и лежащими в их основе веб-технологиями. Это помогает им сделать это быстрее и эффективнее, чем тем, у кого опыта меньше.
Обратное проектирование задачи Cloudflare JavaScript
Обратная разработка JavaScript-задачи Cloudflare может оказаться непростой задачей, но она вполне выполнима при наличии необходимых инструментов и методик. В этом руководстве мы рассмотрим шаги, связанные с обратным проектированием Cloudflare JavaScript challenge, с примерами кода.
Шаг 1: Проверьте сетевой журнал
Первым шагом является открытие сетевого журнала браузера и изучение запросов и ответов. Ищите запросы, которые возвращают код ошибки 503 или содержат cookie «cf-chl-bypass». Именно такие запросы обычно вызывают вызов Cloudflare JavaScript.
import requests url = "https://example.com" response = requests.get(url) print(response.content)
Код отправляет HTTP GET-запрос на URL целевого сайта, используя библиотеку requests. Содержимое ответа выводится в консоль вместе с HTML-содержимым сайта и любыми загруженными скриптами.
Шаг 2. Отладка сценария вызова Cloudflare JavaScript
Далее откройте отладчик браузера и найдите файл JavaScript, отвечающий за вызов. Обычно этот файл имеет название «cf_chl.js» или «challenge.js». Установите точку останова в начале сценария, чтобы остановить его выполнение и облегчить анализ.
import requests from bs4 import BeautifulSoup url = "https://example.com" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") script_tag = soup.find("script", {"src": "/cdn-cgi/challenge-platform/h/b/orchestrate/jsch/v1"}) js_code_url = "https://example.com" + script_tag["src"] js_code = requests.get(js_code_url).text # Add print statements to debug the JS code def challenge_callback(solved_token): print("Solved token:", solved_token) context = { "success": False, "callback": challenge_callback } exec(js_code, context)
- Этот код отправляет HTTP GET-запрос на URL целевого сайта с помощью библиотеки requests.
- Содержимое ответа разбирается с помощью библиотеки BeautifulSoup для поиска тега script, содержащего скрипт вызова Cloudflare.
- Извлекается исходный URL-адрес тега скрипта и отправляется еще один HTTP GET-запрос для получения содержимого скрипта.
- Полученное содержимое скрипта выполняется с помощью функции exec. Для определения функций обратного вызова передается пользовательский контекст.
- Пример функции обратного вызова определен и передан в пользовательский контекст. Она будет вызвана в случае успешного решения задачи Cloudflare.
Шаг 3. Деобфускация сценария вызова Cloudflare JavaScript
Сценарий вызова Cloudflare JavaScript обычно обфусцирован для предотвращения обратного проектирования. Для деобфускации сценария и облегчения его чтения используйте такие инструменты, как JSNice или Unminify. В качестве альтернативы можно использовать встроенный в отладчик браузера улучшитель JavaScript.
import requests from bs4 import BeautifulSoup from jsbeautifier import beautify url = "https://example.com" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") script_tag = soup.find("script", {"src": "/cdn-cgi/challenge-platform/h/b/orchestrate/jsch/v1"}) js_code_url = "https://example.com" + script_tag["src"] js_code = requests.get(js_code_url).text # Use jsbeautifier to deobfuscate the JS code deobfuscated_code = beautify(js_code) def challenge_callback(solved_token): print("Solved token:", solved_token) context = { "success": False, "callback": challenge_callback } exec(deobfuscated_code, context)
- Этот код аналогичен шагу 2 вплоть до получения содержимого скрипта вызова.
- Для деобфускации содержимого скрипта и придания ему более читабельного вида используется библиотека jsbeautifier.
- Определяется примерная функция обратного вызова, которая передается в пользовательский контекст. Она будет вызвана в случае успешного решения задачи Cloudflare.
Шаг 4: Анализ деобфусцированного скрипта
Теперь, когда сценарий деобфусцирован, пришло время его проанализировать. Ищите функции, которые генерируют маркер вызова или проверяют ответ. Эти функции обычно имеют названия типа «gen_challenge» или «verify». Изучите сценарий на предмет повторяющихся шаблонов или алгоритмов. Если они найдены, их можно использовать для создания правильного маркера вызова или ответа.
import requests from bs4 import BeautifulSoup from jsbeautifier import beautify url = "https://example.com" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") script_tag = soup.find("script", {"src": "/cdn-cgi/challenge-platform/h/b/orchestrate/jsch/v1"}) js_code_url = "https://example.com" + script_tag["src"] js_code = requests.get(js_code_url).text # Use jsbeautifier to deobfuscate the JS code deobfuscated_code = beautify(js_code) # Extract relevant code snippets challenge_function = "" challenge_callback = "" for line in deobfuscated_code.split("\n"): if "function " in line and "challenge_" in line: challenge_function += line + "\n" elif "success:!1," in line: challenge_callback += line + "\n" # Create a custom environment for executing the JS code class ChallengeEnvironment: def __init__(self, callback): self.callback = callback self.success = False def setTimeout(self, func, delay): func() def atob(self, str): return bytes(str, "ascii").decode("base64") # Execute the challenge function with the custom environment context = ChallengeEnvironment(challenge_callback) try: exec(challenge_function, context.__dict__) except Exception as e: print("Error:", e) if context.success: print("Challenge solved successfully!") else: print("Failed to solve the challenge.")
Этот код аналогичен шагу 3 вплоть до деобфускации содержимого скрипта вызова.
- Из деобфусцированного сценария извлекаются соответствующие фрагменты кода, включая функцию вызова и функцию обратного вызова success.
- Определяется класс пользовательского окружения, имитирующий окружение браузера и позволяющий корректно выполнить сценарий вызова.
- Функция вызова выполняется в пользовательском окружении, а все ошибки перехватываются и выводятся в консоль.
- Если вызывается функция обратного вызова success с флагом success, установленным в True, значит, задача Cloudflare была успешно решена.
Способ 3: Использование решателей Cloudflare
Эффективность решателей Cloudflare с открытым исходным кодом может варьироваться в зависимости от конкретной задачи, поставленной Cloudflare. В целом, некоторые решатели более эффективны, чем другие, при решении различных типов задач. Например, Cfscrape и cloudscraper — две популярные библиотеки Python, которые могут быть эффективны для решения базовых задач JavaScript.
Обе они используют безголовые браузеры для имитации взаимодействия пользователя со страницей Cloudflare ddos challenge. С простыми задачами часто можно справиться легко. FlareSolverr запускает безголовый браузер, предоставляя пользователю файлы cookie и другие данные, необходимые для решения задачи. Такой подход может быть более эффективным при решении более сложных задач. Здесь пользователь взаимодействует со страницей задачи более реалистично.
cloudflare-scrape и cloudflare-iuam-solver — две другие библиотеки Python, использующие безголовые браузеры для решения задач Cloudflare. Хотя они менее популярны, чем некоторые другие решатели, они все же могут быть эффективны для решения простых задач. Наконец, CloudflareSolverRe — это более новый решатель, который работает на основе анализа страницы задачи Cloudflare. Он автоматически генерирует решение с помощью регулярных выражений. Такой подход может быть весьма эффективен при решении простых задач. При решении более сложных задач, требующих более тонких решений, он может оказаться неэффективным.
Способ 4: Использование безголовых браузеров
Безголовые браузеры имитируют реальное поведение пользователя в обычном браузере. Они позволяют пользователю выполнять JavaScript, работать с файлами cookie и взаимодействовать с веб-сайтом так, как это делал бы обычный пользователь. Это усложняет задачу Cloudflare по обнаружению и блокированию автоматизированного трафика. Создается впечатление, что трафик исходит от легитимного пользователя, а не от бота.
Одним из популярных безголовых браузеров для обхода Cloudflare является Puppeteer — библиотека Node.js, предоставляющая высокоуровневый API для управления безголовым браузером Chrome. Puppeteer можно использовать для доступа к веб-данным, защищенным Cloudflare. Он может решить проблему с помощью JavaScript и извлечь файлы cookie, необходимые для предотвращения будущих проблем. Другой вариант — Selenium, широко распространенный фреймворк для автоматизации работы веб-браузеров. Selenium можно использовать для управления безголовыми версиями популярных браузеров, таких как Chrome и Firefox, и взаимодействовать с веб-сайтами таким образом, чтобы в точности имитировать поведение человека.
Для более сложных задач, требующих отпечатка пальца браузера, можно использовать GoLogin. Изначально этот браузер предназначался для обеспечения конфиденциальности, но сейчас он широко используется для парсинга в режиме «без головы». GoLogin управляет отпечатками браузеров с помощью специального решения. С одной машины можно запустить несколько профилей браузеров, которые будут выглядеть уникально и нормально даже для самых продвинутых сайтов.
Безголовые браузеры: плюсы и минусы
Одним из потенциальных недостатков использования безголовых браузеров является то, что они требуют больше ресурсов, чем более простые решения, такие как решатели Cloudflare. Запуск безголового браузера может занимать много памяти и замедлять процесс парсинга. Это особенно заметно при работе с большими объемами данных.
Еще одним ограничением является то, что безголовые браузеры могут быть сложнее в настройке и использовании, чем другие решения. Они требуют знаний в области программирования и веб-разработки и могут быть более сложными для нетехнических пользователей. Однако вы, скорее всего, разбираетесь в технологиях, если уже сталкиваетесь с проблемой парсинга высокозащищенного веб-сайта.
Безголовые браузеры могут быть чрезвычайно эффективным инструментом для обхода Cloudflare. Важно взвесить все «за» и «против» использования безголовых браузеров в сравнении с другими решениями, а также учесть следующие факторы:
- Объем собираемых данных
- Общий уровень защиты сайта
- Техническая грамотность пользователя
- Ресурсы, доступные для запуска безголовых браузеров.
Способ 5: Использование смарт-прокси для обхода Cloudflare
Еще одним эффективным способом обхода защитных механизмов Cloudflare являются API-интерфейсы интеллектуальных прокси. Smart proxy API предназначены для маршрутизации HTTP-трафика через пул реальных жилых IP-адресов. Это затрудняет обнаружение и блокировку автоматического трафика на сайтах. Работа этих API заключается в предоставлении доступа к большому пулу реальных IP-адресов. API отправляет запросы на эти IP-адреса, эффективно маскируя происхождение запросов. Таким образом, Cloudflare становится сложнее выявлять и блокировать автоматизированный трафик.
Примеры
Одним из популярных API интеллектуальных прокси является Oxylabs Residential Proxies API. Этот API предоставляет доступ к пулу из более чем 100 млн прокси-серверов для жилых домов. Это делает Oxylabs одним из крупнейших API интеллектуальных прокси. API отличается простотой использования, отличной документацией и поддержкой таких популярных языков, как Python и Node.js.
Для использования API прокси-сервера Oxylabs Residential Proxies необходимо сначала зарегистрировать учетную запись и получить API-ключ. После получения ключа API можно использовать его для выполнения HTTP-запросов через API. API будет направлять запросы через пул жилых IP-адресов. Таким образом, Cloudflare будет сложнее обнаружить и заблокировать ваши запросы.
Другим популярным API интеллектуальных прокси является Luminati Proxy API. Этот API предоставляет доступ к пулу из более чем 72 млн. прокси-серверов. Также имеется ряд других возможностей, таких как геотаргетинг и «отпечатки пальцев» браузеров. API разработан как гибкий и легко настраиваемый, с поддержкой широкого спектра вариантов использования. В некоторых случаях API интеллектуальных прокси являются эффективным способом обхода защитных механизмов прокси-сервера Cloudflare. Маршрутизируя запросы через пул реальных IP-адресов, такие API помогают избежать обнаружения.
Способ 6: Парсинг кэша Google
Парсинг кэша Google — еще одна техника, которая может быть использована для обхода Cloudflare. Кэш Google — это снимок сайта, сделанный гусеницей Google и сохраненный в ее кэше. При обращении к сайту через кэш Google запрос направляется на серверы Google, а не на сам сайт. Это может помочь обойти защиту Cloudflare.
Итак, начните с простого поиска в Google: посмотрите, есть ли у сайта, который вы собираетесь использовать, кэшированная версия. Для этого нужно использовать поисковый запрос, включающий префикс «cache», за которым следует URL, к которому вы хотите получить доступ. В результате в результатах поиска будет показана кэшированная версия сайта — щелкните на ссылке «Cached», чтобы получить доступ. Этот же URL (без пометки «cache:») может быть использован для парсинга.
Однако важно отметить, что кэш Google не всегда может содержать самую актуальную версию сайта. Некоторые элементы, например изображения, могут отображаться некорректно. Кроме того, Google может заблокировать или ограничить доступ к своему кэшу, если обнаружит чрезмерный парсинг или необычную структуру трафика.
Способ 7: Обход Cloudflare CAPTCHA
Для обхода JavaScript-задач Cloudflare также можно использовать сервисы решения капчи. Это один из самых дорогих способов (особенно для задач большого объема). Однако иногда это единственный способ, который действительно работает. Такие сервисы, как 2Captcha, используют реальных людей для быстрого и эффективного решения капч. Многие из них имеют API, которые могут быть интегрированы в скрипты или программы. Достаточно зарегистрироваться и получить API-ключ. Затем можно использовать API для отправки задания на ввод капчи и получения ответа, содержащего решенную капчу.
Для обхода JavaScript-задач Cloudflare необходимо перехватить задачу. После этого необходимо отправить его в API сервиса решения капчи. Сервис вернет решенную задачу, которую можно использовать для обхода задачи и получения доступа к защищенному сайту. Важно отметить, что использование сервиса для разгадывания капчи не всегда может быть надежным. Служба может не справиться с некоторыми типами капч или потребовать больше времени для их решения.
Способ 8: Конфиденциальные браузеры для защиты от парсинга
Я пробовал работать с Playwright в разных браузерах и контекстах, а также на нескольких облачных провайдерах — безрезультатно. Поэтому я решил попробовать Playwright в браузере с защитой от обнаружения.
Что такое браузеры защиты от несанкционированного доступа?
Браузеры для защиты конфиденциальности (также называемые мультиучетными или антидетекторными браузерами) обычно основаны на Chromium, но имеют функции, повышающие конфиденциальность пользователей. Как правило, они создают новые отпечатки пальцев, которые выглядят подлинными для веб-сайтов, защищая реальное местоположение пользователя. В этом заключается ключевое отличие от классического выполнения Playwright или Selenium. Я выражу это более простыми словами.
При использовании Playwright под Chrome сервер знает, что вы используете подлинную версию Chrome. Он запускается с машины дата-центра — благодаря отпечатку устройства. При использовании браузера конфиденциальности вы используете версию Chromium, настроенную на максимальную конфиденциальность. Он устанавливает сложный профиль подключения, который отправляет пользовательские отпечатки устройств. Таким образом, даже самые продвинутые веб-серверы видят, что вы запускаете браузер с обычного Mac. Факт работы с сервером остается незамеченным. Таким образом, ваша работа надежно защищена.
GoLogin
Мне нужно было проверить, работает ли это решение. Из нескольких доступных браузеров мне пришлось выбрать тот, который обладал следующими характеристиками:
- Имеет полностью рабочую бесплатную демо-версию для тестирования моего решения
- Возможность быстрой интеграции с Playwright, что минимизирует влияние на мою производственную среду
- Наличие Unix-клиента для моей производственной среды
Учитывая, что технически любой браузер на базе chromium может работать с Playwright, если путь executable_path указан следующим образом
browser = playwrights.chromium.launch(executable_path='/opt/path_to_bin')
Я выбрал службу парсинга GoLogin из-за всех вышеперечисленных особенностей. Также я учитывал возможность создания различных профилей (каждый под разными отпечатками пальцев), которые можно использовать для экспериментов.
Конфигурация
После регистрации я создал свой первый профиль, имитирующий рабочую станцию Windows. Затем я загрузил клиент браузера и исходный код python из их репозитория. Он необходим для взаимодействия с Playwright с помощью их API. Используя тесты на сайте amiunique.org, мы можем увидеть разницу между Playwright Chrome с моего ноутбука Mac и с профилем GoLogin.
В первом случае мы видим платформу Macintel и заголовки macOS, которые в любом случае могут быть легко изменены.
Используя вместо этого Gologin, я имитирую выполнение с Windows-машины.
Заключительные советы по обходу пассивного и активного обнаружения ботов Cloudflare
Это несколько общих советов для случаев, когда вообще ничего не работает. Бывают случаи, когда вы просто экспериментируете с новыми способами и комбинируете уже существующие.
Обход пассивного обнаружения ботов Cloudflare
- Отключите JavaScript: это позволит Cloudflare не собирать эту информацию и обойти данный механизм обнаружения. Однако этот способ может подойти не для всех случаев, поскольку некоторые сайты в значительной степени зависят от JavaScript.
- Использовать прокси-сервер с JavaScript-рендерингом: Пассивный механизм обнаружения ботов Cloudflare также может выявлять ботов, не выполняющих JavaScript. Использование прокси-сервиса, поддерживающего JavaScript-рендеринг, позволяет обойти этот механизм обнаружения. Прокси-сервис, поддерживающий рендеринг JavaScript, будет выполнять его на сервере и возвращать страницу клиенту.
- Используйте фреймворк для парсинга: Пассивное обнаружение Cloudflare также может выявлять ботов, которые ведут себя не так, как реальные пользователи. Используя фреймворк для парсинга, который может имитировать поведение реального пользователя, можно обойти этот механизм обнаружения.
Обход активного обнаружения ботов Cloudflare:
- Изменение агента пользователя: изменив строку агента пользователя так, чтобы она имитировала работу браузера, можно обойти этот механизм обнаружения. Для быстрого переключения между строками user-agent можно использовать расширение User-Agent Switcher для Chrome или Firefox.
- Чередование IP-адресов: система активного обнаружения ботов cloudflare также может определять ботов по их IP-адресам. Поменяв IP-адреса, можно обойти этот механизм обнаружения. Для ротации IP-адресов можно использовать прокси-сервис или VPN. Еще одним вариантом является сеть Tor, но она может подойти не для всех случаев использования.
- Используйте безголовый браузер: Система активного обнаружения ботов Cloudflare также может идентифицировать ботов на основе их поведения в браузере. Используя безголовый браузер, можно имитировать поведение реального пользователя и обойти этот механизм обнаружения.
Безголовые браузеры — это автоматизированные браузеры, управляемые через программный интерфейс. Среди популярных безголовых браузеров можно назвать Puppeteer, Selenium, GoLogin и Playwright.