Назад в Центр знаний
Сеть

Cloudflare и DataDome: ответы при сборе данных

Различайте проверки Cloudflare, решения интеграции DataDome и ошибки сервера при сборе данных. Видимый ответ не раскрывает скрытую оценку бота.

BotBrowser Team

Документация

Нужна структурированная документация по теме Сеть?

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

Ответ Cloudflare или DataDome при сборе данных показывает результат решения о доступе, а не все сигналы, на которых оно основано. Сначала нужно отличить страницу проверки от запрошенного содержимого, ошибки исходного сервера или сбоя интеграции. BotBrowser документирует управление браузером и заголовками запросов; он не раскрывает внутреннее состояние решений поставщиков и не гарантирует доступ. Задание с разрешённым доступом должно классифицировать ответ и передать нерешённый вопрос владельцу сайта через утверждённый канал поддержки.

Посмотреть видео

Это видео на английском языке объясняет, как классифицировать страницу проверки Cloudflare, обычный HTTP 403 и неожиданный HTML-документ при сборе данных, и почему скрытая оценка или решение DataDome требуют сопоставленной записи оператора. Аудио на английском языке.

Классификация отделяет маркер проверки Cloudflare cf-mitigated от неоднозначного HTTP 403. Журналы интеграции владельца сайта дают контекст решения; ответ клиенту не раскрывает скрытую оценку бота.

Кратко

  • Cloudflare документирует cf-mitigated: challenge как маркер Challenge Page с типом text/html, даже если запрошен другой ресурс.
  • Обычный HTTP 403 не определяет поставщика, правило или сигнал браузера.
  • Оценки Cloudflare и решения серверной интеграции DataDome наблюдаются на другом уровне, чем ответ браузеру.
  • Классификация ответа, разрешение доступа, успех приложения и причина отказа; разные выводы.
  • Сохраните обезличенную запись для сопоставления запроса и попросите уполномоченного оператора проверить журналы.

Содержание

Оценки Cloudflare и настроенные действия

Документация оценок Cloudflare задаёт диапазон от 1 до 99. Значение 1 означает высокую уверенность Cloudflare в автоматическом происхождении запроса; 99; высокую уверенность в том, что запрос поступил от человека. Это крайние значения классификации поставщика, а не опубликованное преобразование в проценты. Оценка не является постоянным удостоверением личности клиента. Внешний клиент не должен назначать себе оценку по полученной странице.

Тот же источник объясняет, что операторы могут использовать оценки в пользовательских правилах WAF для блокировки, проверки или разрешения запросов, а также в Workers. Классификация и действие поэтому различаются: настроенная политика оператора преобразует имеющиеся сведения в ответ. Подробные оценки требуют указанной в документации подписки Enterprise Bot Management. Страница проверки не доказывает использование именно этого тарифа или определённого правила на основе оценки.

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

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

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

Страница проверки в задании сбора данных

Справочник ответов Challenge Page Cloudflare задаёт конкретный видимый клиенту маркер: cf-mitigated со значением challenge. Он также указывает тип содержимого text/html независимо от запрошенного ресурса. Поэтому адрес данных, обычно возвращающий JSON, может прислать HTML со страницей проверки вместо данных. Прежде чем передавать тело парсеру JSON, проверьте доступные метаданные ответа.

Одного неожиданного HTML недостаточно для атрибуции. Страница входа приложения, шаблон ошибки исходного сервера или страница посредника также могут быть HTML. При наличии используйте документированный маркер. Различайте заголовок, видимый сетевому инструменту, и заголовок, доступный JavaScript страницы. Пример с fetch показывает проверку, но не делает все заголовки читаемыми в любом междоменном запросе.

Если ответ соответствует документированной Challenge Page, остановите зависимый этап извлечения. Ошибка парсера после такого ответа; последствие, а не доказательство изменения схемы данных сайта. Послойная диагностика блокировки сборщика объясняет необходимость отдельных записей для транспорта, HTTP и обработки документа. Страница проверки не должна незаметно превращаться в пустой результат системы мониторинга.

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

При перенаправлении навигации сохраняйте цепочку ответов. Итоговый HTTP 200 может относиться к документу входа после изменения маршрута. Запишите конечный URL, разрешённую историю перенаправлений и тип содержимого, не сохраняя значения подписанных параметров. Иначе сравнение исходного адреса парсера с другим конечным документом превратит изменение маршрутизации приложения в мнимый результат детектора. Не переходите на неожиданный адрес вне разрешённой области только ради полноты записи.

Решения внутри интеграции DataDome

Справочник интеграции проверки запросов DataDome описывает серверный модуль, вызывающий API и применяющий решение. Предварительные условия включают доступ к заголовкам запроса и IP конечного пользователя; также рекомендуется собирать сведения об отпечатке входящего TLS там, где это поддерживается. Это входы интеграции. Открытый список не раскрывает веса решения для конкретного запроса и не доказывает сбор всех необязательных входов в каждой установке.

Справочник отделяет решение API от итогового ответа сайта клиенту. Интеграция направляет разрешённый запрос на backend, а при решении о проверке возвращает предоставленный API ответ согласно документированному отображению. Браузер посетителя не обязательно получает этот внутренний обмен API. Не трактуйте клиентский HTTP 200 как непосредственное чтение внутреннего разрешения DataDome: содержимое или результат авторизации приложения могут отличаться.

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

Справочник требует обработки отображений заголовков вверх и вниз по цепочке и предупреждает не раскрывать конечным пользователям внутренние заголовки-указатели. Для разрешённого расследования запросите у оператора применимое решение и обезличенный результат сопоставления. Не требуйте внутреннюю конфигурацию и не собирайте токены сеанса лишь для классификации ответа. Это отделяет детали реализации сервера от публичного клиентского API обнаружения.

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

Таблица ответов и дальнейших действий

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

НаблюдениеПоддерживаемая классификацияСледующее разрешённое действиеНеобоснованный вывод
cf-mitigated: challengeДокументированный маркер Cloudflare Challenge PageОстановить разбор данных и уточнить путь доступа у оператораПричиной была конкретная оценка бота или свойство браузера
HTTP 403 без определённого маркераДоступ отклонён на наблюдаемой границе ответаСопоставить запрос с разрешёнными журналами edge и исходного сервераРешение обязательно принял DataDome или Cloudflare
HTTP 200 с неожиданным HTMLОтвет не подходит ожидаемому этапу обработки JSONПроверить тип содержимого, маркеры и результат приложенияДанные успешно собраны или поставщик внутренне разрешил запрос
Решение интеграции DataDome, сопоставленное операторомЗаписанное решение модуля по этому запросуСравнить действие модуля, ответ и разрешённый путь приложенияКлиент читает все поля внутреннего API
Нет читаемых метаданных решенияНедостаточно сведений для атрибуции поставщикуСохранить обезличенную запись и запросить сопоставлениеЗащиты не было или произошёл fail-open

Таблица рассматривает статус HTTP и успех приложения отдельно. Полученная страница может быть документом ошибки; корректный ответ может не содержать данных, разрешённых этому аккаунту. Разбор состояния сеанса при сборе объясняет, почему сохранённые cookies не разрешают этот вопрос. Невозможность классификации; результат расследования, а не повод навязать вердикт об успешной или неуспешной проверке.

Отделяйте результат извлечения от результата инцидента. Если контракт приложения требует JSON, а адрес возвращает text/html, сохраните классифицированную ошибку задания вместо публикации пустого списка цен или удаления старых записей. Это обработка данных потребителем, а не новое утверждение о детекторе поставщика. Возобновляйте конвейер только через утверждённое восстановление приложения после устранения оператором проблемы доступа или интеграции.

Сопоставление запросов без сбора секретов

Для собственного сайта сохраняйте маршрут, время запроса с указанием системы отсчёта часов, статус HTTP, тип содержимого и допустимый идентификатор сопоставления. Справочник заголовков Cloudflare описывает Cf-Ray как идентификатор запроса, полезный для сопоставления. Это не оценка бота и не токен разрешения. Укажите, где наблюдался идентификатор и какой журнал проверял оператор; сам идентификатор не доказывает обработки запроса исходным сервером.

В записи инцидента разделяйте наблюдения клиента и выводы оператора. Клиент может записать cf-mitigated: challenge; уполномоченный оператор; добавить применимое правило или сопоставленное решение интеграции. Без его записи причина остаётся неподтверждённой. Повторение того же статуса в нескольких запусках браузера не заменяет внутренние свидетельства.

Укажите инструмент наблюдения. Междоменный fetch страницы может не показывать те же поля, что разрешённый сетевой инструмент. Нечитаемый страницей заголовок отмечайте как недоступный на этой границе, а не отсутствующий в сетевом ответе. Владелец может проверить серверные журналы или разрешённые инструменты, не меняя междоменную политику ради скрипта сбора. Предел видимости инструмента; предел свидетельств, а не вердикт поставщика.

Перед сохранением или передачей образца удаляйте cookies, заголовки авторизации, подписанные URL проверок и сведения аккаунта. Там, где сбор разрешён, оставляйте только фрагмент тела для классификации документа. Даже ответ со статусом 403 может содержать секреты. Записи нужен контекст для воспроизведения разрешённого сбоя, а не повторно используемый сеанс аккаунта или полный отпечаток постороннего пользователя.

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

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

Управление браузером и граница доступа

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

На тестовом стенде собственного приложения эти средства помогают проверить доставку нужного заголовка разрешённому адресату. Руководство по пользовательским HTTP-заголовкам описывает эту границу конфигурации. Результат стенда устанавливает лишь то, что наблюдал стенд; он не измеряет допуск Cloudflare или DataDome, изменение оценок или внутренние входы детектора. Эксперимент такого рода на сервисе поставщика здесь не заявляется.

Браузер, интеграция сервиса и приложение дают разные части записи. Управляемые группы, принимающие похожее решение у другого поставщика, составляются иначе, и AWS WAF Bot Control: что видит клиент читает эту структуру по правилам. BotBrowser не предоставляет ёмкость прокси, разрешения поставщика или решения о доступе от имени защищённого сервиса. Ожидаемый политикой отказ сохраняйте как условие остановки. Когда владелец обнаруживает дефект интеграции, исправляйте разрешённую интеграцию, а не считайте значения браузера удостоверением личности.

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

Раскрывает ли проверка Cloudflare оценку бота?

Документированный маркер определяет Challenge Page. Настроенное действие и оценка требуют соответствующих записей оператора; клиентский ответ не даёт преобразования в оценку.

Доказывает ли отсутствующий заголовок DataDome fail-open?

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

Может ли успешный HTTP-ответ нарушить извлечение?

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

Задаёт ли пользовательский заголовок запроса решение поставщика?

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

Источники

Практический вывод

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

#веб-скрейпинг#Browser Automation#приватность

Эта статья входит в руководство: Обзор настройки прокси: карта сетевых решений браузера

Выполните ту же проверку в BotBrowser

Загрузите профиль, сохраните внутри браузера те сигналы, о которых только что прочитали, и подтвердите результат на своей машине до раскатки.