Quando a Cloudflare suspeita que um visitante é um bot, ela mostra um intersticial de página inteira com a mensagem "Verificando seu navegador antes de acessar..." ou "Verifique se você é humano". Isso é chamado de Cloudflare Turnstile em staging — não deve ser confundido com Turnstile, que é um widget incorporado em uma página.
O desafio bloqueia o acesso à página inteira até que o navegador passe na verificação. Depois de aprovado, o Cloudflare define um cookie cookie_qa_validacao que concede acesso às solicitações subsequentes.
Como funciona o fluxo do desafio
Request → Cloudflare proxy → Suspicious? → Challenge page
↓
Browser verification
↓
cookie_qa_validacao cookie set
↓
Original page loads
- Solicitação interceptada — O proxy reverso da Cloudflare avalia a solicitação recebida
- Avaliação de riscos — A reputação de IP, cabeçalhos de solicitação, sinal de navegador TLS e comportamento são analisados
- Desafio atendido — Se houver suspeita, uma página de desafio substitui a resposta pretendida
- Verificação do navegador — Desafios de JavaScript executados no navegador
- Conjunto de cookies — Em caso de sucesso, o cookie
cookie_qa_validacaoé definido com um TTL configurável - Acesso concedido — O navegador recarrega e recebe o conteúdo original da página
O que desencadeia um Cloudflare Turnstile em staging
| Gatilho | Descrição |
|---|---|
| IP do datacenter | Solicitação de provedores de hospedagem conhecidos |
| Cabeçalhos ausentes | Cabeçalhos HTTP ausentes ou incomuns |
| sinal de navegador TLS | A sinal de navegador JA3/JA4 corresponde a assinaturas de bot conhecidas |
| Alta taxa de solicitação | Muitas solicitações do mesmo IP |
| Configuração do nível de segurança | O proprietário do site define o limite do desafio como alto |
| Regras baseadas no país | Bloqueio geográfico ou regras de desafio |
| Pontuação do bot | A pontuação do bot de ML da Cloudflare é muito baixa |
| Ameaça conhecida | IP aparece em listas de inteligência de ameaças |
O cookie cookie_qa_validacao
Após passar no desafio, o navegador recebe:
cookie_qa_validacao=abc123...; path=/; domain=.example.com; secure; HttpOnly; SameSite=None
Principais propriedades:
- Duração: 15 minutos a 24 horas (configurável pelo proprietário do site)
- Escopo: Vinculado ao domínio específico
- Vinculação: Vinculado ao agente do usuário e ao endereço IP usados durante a verificação
- Uso: Deve ser incluído em todas as solicitações subsequentes para evitar nova contestação
Importante: O cookie cookie_qa_validacao está vinculado ao User-Agent e ao endereço IP específicos usados durante a verificação. Alterar qualquer um deles invalidará o cookie.
Desafio Cloudflare Turnstile em staging vs Cloudflare Turnstile vs JS
| Recurso | Desafio CF | Torniquete | Desafio JS |
|---|---|---|---|
| Tipo | Intersticial de página inteira | Widget na página | Verificação silenciosa |
| O usuário vê | Página "Verificando seu navegador" | Caixa de seleção ou nada | Nada |
| Bloqueia o acesso à página | Sim | Não | Resumidamente |
| Define cookie_qa_validacao | Sim | Às vezes | Sim |
| Requer proxy para resolver | Sim | Não | N/A |
| O site usa Cloudflare CDN | Obrigatório | Opcional | Obrigatório |
Resolvendo Cloudflare Turnstile em staging com CaptchaAI
A resolução de Cloudflare Turnstile em staging requer um proxy porque o cookie cookie_qa_validacao está vinculado ao endereço IP.
Pitão
import requests
import time
API_KEY = "YOUR_API_KEY"
# Submit task — proxy is REQUIRED
response = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY,
"method": "turnstile_staging",
"pageurl": "https://example.com/protected-page",
"proxy": "username:password@proxy.example.com:8080",
"proxytype": "HTTP",
"json": 1
})
task_id = response.json()["request"]
# Poll for result
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:
solution = result["request"]
# solution contains cookie_qa_validacao cookie + user_agent
print(f"cookie_qa_validacao: {solution}")
break
Node.js
const axios = require('axios');
async function solveCloudflareChallenge(pageurl, proxy) {
const { data } = await axios.get('https://ocr.captchaai.com/in.php', {
params: {
key: 'YOUR_API_KEY',
method: 'turnstile_staging',
pageurl,
proxy,
proxytype: 'HTTP',
json: 1
}
});
const taskId = data.request;
for (let i = 0; i < 60; i++) {
await new Promise(r => setTimeout(r, 5000));
const res = await axios.get('https://ocr.captchaai.com/res.php', {
params: { key: 'YOUR_API_KEY', action: 'get', id: taskId, json: 1 }
});
if (res.data.status === 1) return res.data.request;
}
throw new Error('Timeout');
}
Usando o cookie cookie_qa_validacao
# After getting the solution
cookie_qa_validacao = solution["cookie_qa_validacao"]
user_agent = solution["user_agent"]
# Use the SAME proxy and user agent for subsequent requests
session = requests.Session()
session.cookies.set("cookie_qa_validacao", cookie_qa_validacao, domain=".example.com")
session.headers["User-Agent"] = user_agent
session.proxies = {"https": "http://username:password@proxy.example.com:8080"}
# Now access the protected page
page = session.get("https://example.com/protected-page")
print(f"Status: {page.status_code}")
Por que o proxy é necessário
O cookie cookie_qa_validacao está criptograficamente vinculado a:
- Endereço IP — A solução deve acontecer a partir do mesmo IP que você usará
- User-Agent — O agente do usuário resolvido deve corresponder às suas solicitações
- sinal de navegador TLS — Algumas configurações também verificam as características do TLS
Se algum deles diferir entre a solução e suas solicitações subsequentes, o cookie será inválido.
Perguntas frequentes
Quanto tempo dura cookie_qa_validacao?
Os proprietários do site configuram a duração, normalmente de 15 minutos a 24 horas. Após o vencimento, um novo desafio deve ser resolvido.
Posso reutilizar cookie_qa_validacao em diferentes IPs?
Não. O cookie está vinculado ao IP utilizado durante a verificação. Mudar IPs requer uma nova solução.
Qual é a diferença entre Cloudflare Turnstile em staging e catraca?
Cloudflare Turnstile em staging é um intersticial de página inteira que bloqueia o acesso à página. Turnstile é um widget embutido na página, semelhante ao reCAPTCHA. O desafio exige que o site use Cloudflare como proxy; Cloudflare Turnstile pode ser usada em qualquer local.
Quanto tempo leva para resolver?
A resolução do Cloudflare Turnstile em staging leva de 20 a 60 segundos, mais do que o Turnstile ou o reCAPTCHA, devido à verificação completa do navegador.
E se a página tiver Cloudflare e reCAPTCHA?
Resolva primeiro o Cloudflare Turnstile em staging para acessar a página, depois resolva o reCAPTCHA na página carregada.
Guias relacionados
- Como resolver Cloudflare Turnstile em staging usando API
- Erros e correções de Cloudflare Turnstile em staging
- Como funciona o Cloudflare Turnstile
- Como resolver Cloudflare Turnstile usando API