A Cloudflare oferece dois produtos distintos de proteção contra bots que os desenvolvedores frequentemente confundem: Bot Management (uma defesa em nível de rede corporativa) e Turnstile (um widget gratuito de substituição de CAPTCHA). Bot Management é uma plataforma abrangente que inclui regras WAF, limitação de taxa e análise comportamental. Turnstile é um widget CAPTCHA independente que qualquer site pode incorporar gratuitamente. Compreender a diferença é fundamental para escolher a abordagem de automação correta.
Comparação rápida
| Recurso | Gerenciamento de bots | Torniquete |
|---|---|---|
| O que é | Plataforma empresarial de defesa contra bots | Widget CAPTCHA gratuito |
| Preços | Plano empresarial ($$$) | Gratuito para todos os planos |
| Implantação | Nível de rede (proxy Cloudflare) | Widget JavaScript (incorporado na página) |
| Requer DNS da Cloudflare | Sim | Não (funciona em qualquer site) |
| Desafio visível | Às vezes (desafio gerenciado) | Raramente (principalmente invisível) |
| Escopo de detecção | Todas as solicitações para o domínio | Ações específicas da página (envio de formulário, etc.) |
| Pontuação do bot | 1-99 (por solicitação) | Pass/fail (por desafio) |
| Integração WAF | Sim (regras baseadas na pontuação do bot) | Não |
| Desafio JavaScript | Sim (página de espera de 5 segundos) | Sim (prova de trabalho em segundo plano) |
| ** Limitação de taxa ** | Sim | Não |
| Suporte CaptchaAI | Através dos métodos Turnstile/Challenge | Sim (taxa de sucesso de 100%) |
Gerenciamento de bots Cloudflare (empresarial)
O gerenciamento de bots faz parte do plano empresarial da Cloudflare. Opera no nível da rede – cada solicitação ao domínio é avaliada antes de chegar ao servidor de origem.
Como funciona o gerenciamento de bots
Request arrives at Cloudflare edge
↓
Bot Management engine evaluates:
├─ Machine learning model (behavioral sinal de navegador)
├─ Heuristics (known bot patterns)
├─ JavaScript sinal de navegadoring (if JS challenge triggered)
├─ JA3/JA4 TLS sinal de navegador
├─ 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
Componentes de gerenciamento de bots
| Componente | Objetivo |
|---|---|
| Pontuação do bot | Pontuação baseada em ML para cada solicitação |
| Desafio Gerenciado | Mostra de forma adaptativa o desafio JS ou Cloudflare Turnstile |
| Modo de Luta Super Bot | Modo simplificado para planos Pro/Business |
| Análise de bots | Painel mostrando tráfego de bot versus tráfego humano |
| Regras personalizadas do WAF | Regras que são acionadas nos limites de pontuação do bot |
| ** Limitação de taxa ** | Limites de taxa de solicitação por IP/session |
| Detecção de JavaScript | Detecção de navegador modo headless e ferramenta de automação |
O que a automação encontra
Quando um site usa o Bot Management, as solicitações automatizadas podem ver:
- Bloqueio direto (403) — Pontuação do bot muito baixa, regras do WAF bloqueadas
- Página de desafio JavaScript — página "Verificando seu navegador" de 5 segundos
- Desafio gerenciado — Widget de catraca ou desafio JS
- Passe invisível — Solicitação permitida (pontuação do bot alta o suficiente)
Cloudflare Turnstile (CAPTCHA grátis)
Turnstile é um widget CAPTCHA independente que substitui os CAPTCHAs tradicionais. Ele funciona independentemente do Bot Management e pode ser usado em qualquer site (não apenas em sites com proxy da Cloudflare).
Como funciona a catraca
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)
Modos de widget de catraca
| Modo | Comportamento | Caso de uso |
|---|---|---|
| Gerenciado | Cloudflare decide entre invisível e interativo | Padrão, recomendado |
| Não interativo | Sempre invisível (somente prova de trabalho) | Formas de baixo atrito |
| Invisível | Nenhum widget visível, é executado no carregamento da página | Verificação de antecedentes |
Integração de catraca
<!-- 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>
Resolvendo gerenciamento de bots versus catraca
Resolvendo a catraca (simples)
Cloudflare Turnstile é resolvida através do método Turnstile do CaptchaAI com uma taxa de sucesso de 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
Resolvendo desafios de gerenciamento de bots
O gerenciamento de bots usa múltiplas camadas de defesa. O componente CAPTCHA (quando presente) é normalmente um Desafio Gerenciado que é renderizado como 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")
Página Cloudflare Turnstile em staging (sem catraca)
A página de desafio JavaScript "Verificando seu navegador" NÃO é um widget Turnstile. CaptchaAI lida com isso através do método turnstile_staging:
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "turnstile_staging",
"sitekey": "managed",
"pageurl": "https://protected-site.com/login",
"json": 1,
})
Quando você encontra cada produto
| Cenário | Produto provável | Como identificar |
|---|---|---|
| Página "Verificando seu navegador" de 5 segundos | Gerenciamento de bots (desafio JS) | cf-chl-validação autorizada, jschl_vc na fonte da página |
| Widget de catraca em um formulário | Torniquete (autônomo) | Classe cf-turnstile, challenges.cloudflare.com/turnstile |
| 403 Proibido com página de erro Cloudflare | Gerenciamento de bot (bloqueio rígido) | Cabeçalho cf-ray, modelo de erro Cloudflare |
| Caixa de seleção interativa na página da Cloudflare | Desafio gerenciado (gerenciamento de bot) | Domínio challenges.cloudflare.com |
| Nenhum desafio visível, mas cookies cf definidos | Gerenciamento de bots (aprovado) | Biscoito cookie_qa_validacao |
Código de detecção
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
Perguntas frequentes
Um site pode usar Bot Management e Turnstile?
Sim. O Bot Management opera no nível da rede para todas as solicitações, enquanto o Turnstile pode ser adicionado como um widget em páginas específicas. Um site pode usar o gerenciamento de bots para bloquear bots óbvios na borda e o Turnstile nos formulários de login/signup para verificação adicional.
O Turnstile faz parte do gerenciamento de bots?
Não diretamente. Cloudflare Turnstile é um produto separado. No entanto, o modo “Desafio Gerenciado” do Bot Management pode renderizar um widget semelhante ao Turnstile. A abordagem de resolução é a mesma - use o solucionador Turnstile do CaptchaAI.
O que é mais difícil de resolver?
O gerenciamento de bots é mais difícil porque avalia cada solicitação no nível da rede com vários sinais (sinal de navegador TLS, reputação de IP, padrões de solicitação). Cloudflare Turnstile por si só protege apenas envios de formulários específicos. Para o gerenciamento de bots, você precisa de cabeçalhos adequados, configuração de TLS e rotação de IP, além de resolver o desafio do CAPTCHA.
CaptchaAI resolve ambos?
CaptchaAI resolve widgets Turnstile (taxa de sucesso de 100%) e páginas Cloudflare Turnstile em staging. O bloqueio em nível de rede do Bot Management (respostas 403) requer infraestrutura adicional (cabeçalhos adequados, proxies) que está fora do escopo do CaptchaAI — CaptchaAI lida com o componente de desafio CAPTCHA.
Resumo
Cloudflare Bot Management é uma defesa em nível de rede empresarial que avalia cada solicitação com pontuação de ML, regras WAF e análise comportamental. Cloudflare Turnstile é um widget CAPTCHA gratuito que verifica os usuários por meio de prova de trabalho do navegador. Para automação, a Cloudflare Turnstile é resolvida diretamente comCaptchaAI(taxa de sucesso de 100%). Os desafios de gerenciamento de bots exigem simulação de navegador adequada, além de CaptchaAI para o componente de desafio CAPTCHA.
Artigos relacionados
- Verificação de integridade do navegador Cloudflare versus Captcha
- Cloudflare Turnstile em staging vs detecção de catraca
- Comparação de Geetest vs Cloudflare Turnstile