Cloudflare предлагает два разных продукта для защиты от ботов, которые разработчики часто путают: Bot Management (защита на уровне сети предприятия) и Turnstile (бесплатный виджет замены CAPTCHA). Управление ботами — это комплексная платформа, включающая правила WAF, ограничение скорости и поведенческий анализ. Turnstile — это отдельный виджет CAPTCHA, который можно бесплатно встроить на любой веб-сайт. Понимание разницы имеет решающее значение для выбора правильного подхода к автоматизации.
Быстрое сравнение
| Особенность | Управление ботами | Cloudflare Turnstile |
|---|---|---|
| Что это | Платформа защиты корпоративных ботов | Бесплатный виджет CAPTCHA |
| Цены | План предприятия ($$$) | Бесплатно для всех планов |
| Развертывание | Сетевой уровень (прокси Cloudflare) | Виджет JavaScript (встроить на страницу) |
| Требуется Cloudflare DNS | Да | Нет (работает на любом сайте) |
| Видимый вызов | Иногда (управляемая задача) | Редко (в основном невидимо) |
| Область обнаружения | Все запросы к домену | Конкретные действия на странице (отправка формы и т. д.) |
| Оценка бота | 1-99 (по запросу) | Pass/fail (за каждый вызов) |
| Интеграция WAF | Да (правила основаны на оценке бота) | Нет |
| Испытание JavaScript | Да (5-секундная страница ожидания) | Да (подтверждение работы) |
| Ограничение скорости | Да | Нет |
| Поддержка CaptchaAI | Методами Turnstile/Challenge | Да (100% вероятность успеха) |
Управление ботами Cloudflare (предприятие)
Управление ботами является частью корпоративного плана Cloudflare. Он работает на сетевом уровне — каждый запрос к домену оценивается до того, как достигнет исходного сервера.
Как работает управление ботами
Request arrives at Cloudflare edge
↓
Bot Management engine evaluates:
├─ Machine learning model (behavioral сигналы браузера)
├─ Heuristics (known bot patterns)
├─ JavaScript сигналы браузераing (if JS challenge triggered)
├─ JA3/JA4 TLS сигналы браузера
├─ HTTP header analysis
└─ IP reputation (Cloudflare sees ~20% of internet traffic)
↓
Bot score assigned: 1 (definitely bot) to 99 (definitely human)
↓
WAF rules act on the score:
- Score > 50 → Allow
- Score 30-50 → Managed challenge
- Score < 30 → Block or JavaScript challenge
Компоненты управления ботами
| Компонент | Цель |
|---|---|
| Оценка бота | Оценка на основе машинного обучения для каждого запроса |
| Управляемое соревнование | Адаптивно показывает вызов JS или Cloudflare Turnstile |
| Режим боя суперботов | Упрощенный режим для планов Pro/Business |
| Бот-аналитика | Панель мониторинга, показывающая бот-трафик в сравнении с человеческим трафиком |
| Пользовательские правила WAF | Правила, которые срабатывают при достижении пороговых значений оценки бота |
| Ограничение скорости | Пороговые значения частоты запросов для IP/session |
| Обнаружение JavaScript | Обнаружение headless браузера и средств автоматизации |
С чем сталкивается автоматизация
Когда сайт использует управление ботами, автоматические запросы могут видеть:
- Прямая блокировка (403) — оценка бота очень низкая, правило WAF блокирует
- Страница проверки JavaScript — 5-секундная страница «Проверка браузера».
- Управляемый вызов — виджет Cloudflare Turnstile или вызов JS.
- Невидимый проход — запрос разрешен (оценка бота достаточно высока)
Cloudflare Turnstile (бесплатная капча)
Turnstile — это отдельный виджет CAPTCHA, заменяющий традиционные CAPTCHA. Он работает независимо от управления ботами и может использоваться на любом веб-сайте (не только на сайтах, прокси-серверах Cloudflare).
Как работает Cloudflare Turnstile
Page loads Turnstile widget
↓
Widget runs background checks:
├─ Browser proof-of-work challenge (cryptographic puzzle)
├─ Private Access Token (Apple devices)
├─ Browser environment validation
└─ Cloudflare threat intelligence
↓
Result: cf-turnstile-response token generated
↓
Token submitted with form data
↓
Server validates token via Cloudflare API (siteverify)
Режимы виджета Cloudflare Turnstile
| Режим | Поведение | Вариант использования |
|---|---|---|
| Удалось | Cloudflare выбирает между невидимым и интерактивным | По умолчанию, рекомендуется |
| Неинтерактивный | Всегда невидим (только доказательство работы) | Формы с низким коэффициентом трения |
| Невидимый | Виджет не виден, запускается при загрузке страницы | Проверка данных |
Интеграция Cloudflare Turnstile
<!-- Simple Turnstile integration -->
<div class="cf-turnstile" data-sitekey="0x4AAAAAAAC3DHQhMMQ_Rxrg"></div>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
Решение проблемы управления ботами и Cloudflare Turnstile
Решение Cloudflare Turnstile (прямо)
Проблема Turnstile решается с помощью метода Turnstile CaptchaAI со 100% вероятностью успеха:
import requests
import time
API_KEY = "YOUR_API_KEY"
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "turnstile",
"sitekey": "0x4AAAAAAAC3DHQhMMQ_Rxrg",
"pageurl": "https://example.com/signup",
"json": 1,
})
task_id = submit.json()["request"]
for _ in range(60):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY,
"action": "get",
"id": task_id,
"json": 1,
}).json()
if result.get("status") == 1:
token = result["request"]
print(f"Turnstile token: {token[:50]}...")
break
Решение проблем управления ботами
Управление ботами использует несколько уровней защиты. Компонент CAPTCHA (если он присутствует) обычно представляет собой управляемый вызов, который отображается как Cloudflare Turnstile:
# Bot Management flow for automation:
# 1. Make initial request
response = requests.get("https://protected-site.com/api/data")
# 2. Check if challenged
if response.status_code == 403:
# Hard block — need to adjust headers, proxy, or approach
pass
elif "challenge" in response.text.lower() or response.status_code == 503:
# JavaScript challenge or managed challenge
# If it contains a Turnstile widget, solve it:
if "cf-turnstile" in response.text or "challenges.cloudflare.com" in response.text:
# Extract sitekey and solve via CaptchaAI
sitekey = extract_turnstile_sitekey(response.text)
token = solve_turnstile(sitekey, "https://protected-site.com/api/data")
Страница страница Cloudflare-защиты в staging (без Cloudflare Turnstile)
Страница вызова JavaScript «Проверка браузера» НЕ является виджетом «Cloudflare Turnstile». CaptchaAI обрабатывает это с помощью метода turnstile:
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "turnstile",
"sitekey": "managed",
"pageurl": "https://protected-site.com/login",
"json": 1,
})
Когда вы встречаете каждый продукт
| Сценарий | Вероятный продукт | Как определить |
|---|---|---|
| 5-секундная страница «Проверка браузера» | Управление ботами (вызов JS) | challenge markers, jschl_vc в исходном коде страницы |
| Виджет Cloudflare Turnstile на форме | Cloudflare Turnstile (автономный) | Класс cf-turnstile, challenges.cloudflare.com/turnstile |
| 403 Запрещено на странице ошибки Cloudflare | Управление ботами (жесткий блок) | Заголовок cf-ray, шаблон ошибки Cloudflare |
| Интерактивный флажок на странице Cloudflare | Управляемый вызов (управление ботами) | Домен challenges.cloudflare.com |
| Никаких видимых проблем, но см. набор файлов cookie. | Управление ботами (пройдено) | Файл cookie qa_validation_cookie |
Код обнаружения
import requests
def identify_cloudflare_protection(url):
"""Identify which Cloudflare protection a URL uses."""
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 Chrome/120.0.0.0",
}
response = requests.get(url, headers=headers, timeout=15, allow_redirects=False)
html = response.text
result = {
"cloudflare_protected": "cf-ray" in response.headers.get("cf-ray", "")
or "cloudflare" in response.headers.get("server", "").lower(),
"bot_management_challenge": False,
"turnstile_widget": False,
"hard_block": False,
"passed": False,
}
if response.status_code == 403:
result["hard_block"] = True
elif response.status_code == 503 and "jschl" in html:
result["bot_management_challenge"] = True
elif "cf-turnstile" in html:
result["turnstile_widget"] = True
elif response.status_code == 200:
result["passed"] = True
return result
Часто задаваемые вопросы
Может ли сайт использовать как управление ботами, так и Cloudflare Turnstile?
Да. Управление ботом работает на сетевом уровне для всех запросов, а Cloudflare Turnstile можно добавить в виде виджета на определенные страницы. Сайт может использовать управление ботами для блокировки очевидных ботов на границе и Cloudflare Turnstile в формах входа/signup для дополнительной проверки.
Является ли Cloudflare Turnstile частью управления ботами?
Не напрямую. Cloudflare Turnstile является отдельным изделием. Однако режим «Управляемый вызов» Bot Management может отображать виджет, похожий на Cloudflare Turnstile. Подход к решению тот же — используйте решатель Turnstile CaptchaAI.
Что сложнее решить?
Управление ботами сложнее, поскольку оно оценивает каждый запрос на сетевом уровне с помощью нескольких сигналов (TLS-сигналы, репутация IP, шаблоны запросов). Один только Cloudflare Turnstile защищает только отправку определенных форм. Для управления ботами вам потребуются правильные заголовки, конфигурация TLS и ротация IP-адресов в дополнение к решению задачи CAPTCHA.
CaptchaAI решает обе проблемы?
CaptchaAI решает виджеты Cloudflare Turnstile (100% успех) и страницы страница Cloudflare-защиты в staging. Блокировка на сетевом уровне Bot Management (ответы 403) требует дополнительной инфраструктуры (соответствующие заголовки, прокси), которая выходит за рамки CaptchaAI — CaptchaAI обрабатывает компонент запроса CAPTCHA.
Краткое содержание
Cloudflare Bot Management — это защита на уровне корпоративной сети, которая оценивает каждый запрос с помощью оценки ML, правил WAF и поведенческого анализа. Cloudflare Turnstile — это бесплатный виджет CAPTCHA, который проверяет пользователей с помощью доказательства работы браузера. Для автоматизации Cloudflare Turnstile решается напрямую с помощьюCaptchaAI(100% успех). Задачи по управлению ботами требуют правильной симуляции браузера и CaptchaAI для компонента проверки CAPTCHA.
Похожие статьи
- Проверка целостности браузера Cloudflare против Captcha
- страница Cloudflare-защиты в staging против обнаружения Cloudflare Turnstile
- Сравнение Geetest и Cloudflare Turnstile