Анти-бот система — это программное обеспечение перед веб-сайтом, которое для каждого запроса оценивает, насколько вероятно, что он исходит от автоматизации, а не от человека, и действует на основе этой оценки — пропускает, замедляет, отправляет вызов или блокирует. Оценка не основывается на каком-то одном факте. Это балл, собираемый из четырех уровней: откуда приходит запрос (IP), как было установлено соединение (TLS и HTTP отпечатки), что браузер раскрывает о себе (JavaScript отпечаток) и что посетитель делает со временем (поведение). Понимание уровней объясняет две вещи, которые больше всего сбивают с толку пользователей прокси: почему «идеальный» резидентный IP все равно получает вызов, и почему одна и та же настройка работает на одном сайте и не работает на другом.

Вендоры и продукты

Большинство защищенных сайтов используют один из нескольких продуктов: Cloudflare Bot Management (и его вызов Turnstile), DataDome, Akamai Bot Manager, HUMAN (ранее PerimeterX), Imperva (Incapsula), Kasada и AWS WAF Bot Control. Они различаются по акцентам и агрессивности настроек по умолчанию, но построены на одних и тех же четырех уровнях, и именно об этих уровнях пойдет речь в статье. Все нижесказанное в той или иной степени применимо ко всем им.

Уровень 1: репутация IP

Первая и самая дешевая проверка. Прежде чем запрос будет даже обработан, IP проверяется:

  • ASN и тип — это хостинговая компания (дата-центр), потребительский интернет-провайдер (резидентный) или мобильный оператор? ASN хостингов начинают с штрафа на большинстве сайтов; причины объяснены в Резидентные vs дата-центр vs мобильные прокси.
  • Threat intelligence — находится ли IP в списках злоупотреблений, известен как выход VPN/прокси или замечен в атаках на других клиентов того же вендора? Вендоры объединяют сигналы по всей своей клиентской базе, поэтому IP, скомпрометированный на одном сайте, защищенном DataDome, вызывает подозрения на всех остальных.
  • Скорость — сколько запросов этот IP сделал к этому сайту недавно и к скольким разным путям? Счетчик на IP — самый старый бот-сигнал и до сих пор один из самых эффективных.
  • География — соответствует ли страна аудитории сайта? Соответствует ли языку и часовому поясу, которые позже сообщит браузер?

Это единственный уровень, который прокси напрямую контролирует. Резидентный или мобильный IP без истории на целевом сайте проходит его. Но прохождение уровня 1 означает лишь, что запрос переходит к уровням 2–4 с нейтральным баллом, а не с хорошим.

Уровень 2: сетевые отпечатки (TLS, HTTP/2, TCP)

Прежде чем будет отдан какой-либо контент страницы, сервер уже увидел, как было установлено соединение, и способ его установления идентифицирует клиентское программное обеспечение:

  • TLS отпечаток (JA3/JA4) — ClientHello раскрывает TLS-библиотеку: Chrome, Firefox, OpenSSL-в-Python, Go. Объяснено в TLS отпечатки.
  • HTTP/2 отпечаток — значения SETTINGS, начальный размер окна, приоритетные кадры и порядок заголовков и псевдозаголовков. У браузеров характерные стабильные паттерны; у HTTP-библиотек — другие. Исследования Akamai сделали эту технику знаменитой.
  • TCP/IP отпечаток — размер окна, TTL, опции; различает операционные системы, и «Windows» User-Agent с Linux TCP-стеком — это несоответствие.

Логика оценки здесь — согласованность: соответствует ли сетевая идентичность тому, что заявляют HTTP-заголовки? Прокси не трогает эти отпечатки — он их передает — поэтому скрипт за резидентным IP идентифицируется как скрипт на этом уровне независимо от качества IP. Именно здесь получают ответ на большинство вопросов «почему мой чистый прокси заблокирован?».

Уровень 3: отпечаток браузера и JavaScript вызовы

Если запрос доходит до момента отдачи HTML, JavaScript вендора выполняется в браузере посетителя и отправляет отчет. Происходят две вещи.

Снятие отпечатков

Скрипт собирает те же свойства, которые антидетект-браузер создан контролировать: хэши canvas и WebGL, шрифты, размеры экрана и окна, аппаратный параллелизм, часовой пояс, языки, аудио-контекст, IP-адреса, видимые через WebRTC, списки плагинов и десятки других мелких сигналов. Он также проверяет на артефакты автоматизации: navigator.webdriver установлен в true, отсутствующие или несоответствующие объекты, специфичные для Chrome, особенности headless-режима в рендеринге, необычное количество переопределенных API (признак скрытых плагинов, патчащих браузер). И он проверяет согласованность: соответствует ли платформа, сообщаемая JavaScript, ОС из TCP-отпечатка? Соответствует ли часовой пояс стране IP? См. что контролирует антидетект-браузер.

Вызовы

Вендоры также выдают доказательство работы или доказательство человечности. Turnstile от Cloudflare и промежуточная страница «проверка вашего браузера» запускают JavaScript-нагрузку, результат которой должен быть отправлен обратно; клиент, который вообще не может выполнять JavaScript — каждая простая HTTP-библиотека — просто проваливает и никогда не видит страницу. Видимые CAPTCHA — это последнее средство, показываемое, когда балл плохой, но недостаточно плохой для полной блокировки. Прохождение вызова обычно дает cookie или токен, действительный в течение периода; автоматизация, очищающая cookies при каждом запросе, сталкивается с вызовом каждый раз, что само по себе является сигналом.

Уровень 4: поведение

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

  • Паттерны запросов: страниц в минуту, загружаются ли изображения и скрипты, на которые ссылается страница (браузеры людей загружают их; наивные скраперы — нет), следует ли навигация по ссылкам или переходит сразу к глубоким URL, повторяются ли одни и те же пути в одном и том же порядке каждую сессию.
  • Тайминг: равномерные интервалы между запросами похожи на машинные; люди действуют рывками и нерегулярно.
  • Взаимодействие: движение мыши, прокрутка, события клавиатуры — их наличие и форма (реальные траектории мыши искривлены и имеют перелеты; скриптовые — прямые линии или идеальные дуги).
  • Форма сессии: вход в систему, сразу за которым следует массовое действие; оформление заказа без просмотра; создание аккаунта с отпечатка, который вчера создал пять аккаунтов.

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

Как уровни объединяются: балл

Каждый уровень вносит доказательства; продукт объединяет их в бот-балл (Cloudflare показывает свой как 1–99; другие держат его внутри) и владелец сайта настраивает пороги: выше X — разрешить; между X и Y — вызов; ниже Y — блокировать или показывать приманку. Два свойства этой конструкции важны для тех, кто использует прокси:

  1. Уровни должны согласовываться. Балл — это не сумма независимых хороших оценок; противоречия взвешиваются сильно. Резидентный IP (хорошо) плюс Python TLS-отпечаток (плохо) плюс Chrome User-Agent (противоречие) дает худший балл, чем дата-центр IP с честным python-requests UA, потому что второй хотя бы согласован.
  2. Ничто не проверяется изолированно. Прохождение репутации IP покупает вам доступ к следующей проверке, а не пропуск. Каждое ваше заявление — по IP, по рукопожатию, по заголовку, по JavaScript, по поведению — перекрестно проверяется против всех остальных.

Что это значит для выбора прокси

УровеньЧто его определяетМожет ли прокси это исправить?
1. Репутация IPТип IP, история, скорость, геоДа — это вся работа прокси
2. Сетевые отпечаткиВаш HTTP-клиент / браузерНет — передаются без изменений
3. Отпечаток браузера / JS вызовВаш браузер и его конфигурацияНет — но гео/часовой пояс должны соответствовать прокси
4. ПоведениеВаша логика автоматизации и темпНет — хотя ротация влияет на скорость на IP

Итак: выбирайте тип прокси, который требует политика уровня 1 целевого сайта (дата-центр, где это допускается, резидентный или мобильный, где нет), а затем сосредоточьте усилия на уровнях 2–4, которые не касается ни один прокси. Практически это означает реальный или имитируемый браузер для защищенных целей, согласованность отпечатков для каждой личности, соответствие гео/часового пояса IP и человеческий темп. Стратегия ротации одновременно влияет на скорость уровня 1 и форму сессии уровня 4 — см. выбор интервала ротации.

Как определить, какой уровень вас блокирует

  • Мгновенная блокировка, без HTML, даже с реального браузера на том же IP → уровень 1: проблема в IP или ASN. Смените тип прокси или провайдера.
  • Браузер проходит, скрипт на том же IP — нет → уровень 2: TLS/HTTP отпечаток. Переходите на реальный браузер или имитирующий клиент.
  • Промежуточная страница, которая никогда не разрешается, или CAPTCHA при каждом посещении → уровень 3: JavaScript вызов не проходит или отпечаток не согласован. Проверьте флаги автоматизации, WebRTC, часовой пояс против IP.
  • Работает какое-то время, затем деградирует; или аккаунты умирают после действий → уровень 4: поведение или скорость. Замедлитесь, варьируйте паттерны, прогревайте личности.

Вендоры возвращают характерные ответы (страница 403 Cloudflare, заголовки x-datadome и CAPTCHA-эндпоинт DataDome, cookie _abck Akamai), поэтому определить, какой продукт использует сайт, обычно можно, посмотрев на заголовки и cookies — и знание продукта подскажет, какие уровни он подчеркивает.

Часто задаваемые вопросы

Что такое бот-балл?

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

Почему резидентный прокси все равно получает CAPTCHA?

Потому что репутация IP — это только один из четырех уровней. Если TLS/HTTP отпечаток говорит «скрипт», браузер не проходит или не выполняет JavaScript вызов, или поведение машиноподобно, балл будет плохим независимо от IP.

Делятся ли анти-бот системы данными между сайтами?

Внутри вендора — да: IP или отпечаток, помеченный на одном сайте клиента, повышает риск на других сайтах клиентов. Вот почему пул прокси, активно используемый против одной цели, защищенной Cloudflare, может плохо работать на других целях, защищенных Cloudflare, не связанных с первой.

Могут ли простые HTTP-библиотеки проходить JavaScript вызовы?

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

В чем разница между вызовом и CAPTCHA?

Вызов часто невидим — это JavaScript-нагрузка или аттестация, которую браузер выполняет автоматически. CAPTCHA — это видимая головоломка для человека, показываемая, когда балл достаточно плох, чтобы система захотела явного доказательства.

Можно ли быть полностью невидимым?

Не как гарантия. Обнаружение вероятностно, и вендоры постоянно обновляются. Достижимо согласованность по всем четырем уровням плюс человеческое поведение, что держит балл в диапазоне «разрешено» большую часть времени. Тот, кто обещает невидимость только за счет прокси, продает только уровень 1.