logo
bars

Cloudflare Challenge
e CapMonster Cloud

Resolução de captcha, instalação no site e testes.
Você herdou um site com captcha ou outra camada de proteção, mas não tem acesso ao código-fonte? Então é normal querer saber qual solução está instalada, se a configuração está correta e como testar tudo.

Neste artigo, procuramos responder a todas as principais dúvidas. Para começar a resolver o problema, o primeiro passo é identificar qual sistema de proteção está sendo utilizado. Para isso, você pode consultar a lista de captchas e sistemas de proteção antibot mais populares, onde há exemplos visuais e sinais principais que ajudam a identificar rapidamente com o que você está lidando.

Se você notar que o seu site utiliza Cloudflare Challenge, o passo seguinte é estudar com mais detalhes as suas características e o seu funcionamento. Neste mesmo artigo, você também pode conferir o guia de integração do Cloudflare Challenge, para entender por completo como o sistema opera no seu site. Isso permitirá não apenas compreender a proteção atual, mas também planejar adequadamente a sua manutenção.

O que é Cloudflare Challenge
O que é Cloudflare Challenge
Cloudflare Challenge (ou Interstitial Challenge Pages) é um sistema de verificação da Cloudflare, projetado para proteger sites contra bots, spam e tráfego malicioso. Quando a Cloudflare suspeita que uma requisição não vem de um visitante real (por exemplo, devido a um IP suspeito ou falta de JavaScript), um Challenge é exibido — ou seja, um 'desafio' que deve ser concluído para confirmar que você é humano. Este tipo de verificação difere do Turnstile, pois o usuário primeiro vê uma página intermediária com a mensagem “Just a moment…” e “Verifying you are human. This may take a few seconds.”

Como resolver Cloudflare Challenge com CapMonster Cloud

Ao testar a proteção com o Cloudflare Challenge, é importante garantir que a verificação esteja funcionando corretamente e filtrando adequadamente o tráfego suspeito.
Você pode testar manualmente o challenge instalado na sua página:
  • Abra a página em modo anônimo, onde o Challenge é esperado, e verifique se o captcha é exibido.
  • Tente colocar cookies cf_clearance incorretos no navegador (veja mais detalhes abaixo) — o servidor deverá retornar um erro.
  • Após resolver o captcha com sucesso, a página real deve abrir sem verificação.
Para testes automáticos e reconhecimento de captcha, você pode usar serviços especializados como o CapMonster Cloud — uma ferramenta que recebe os parâmetros do captcha, processa nos servidores e retorna uma solução pronta. Esta solução (token ou cookie) pode ser inserida em um formulário ou navegador para passar a verificação sem intervenção do usuário.

Trabalhar com o CapMonster Cloud via API normalmente envolve as etapas abaixo:

Criação da tarefaCriação da tarefa
arrow
Envio da requisição APIEnvio da requisição API
arrow
Recebimento do resultadoRecebimento do resultado
arrow
Inserção do cf_clearanceInserção do cf_clearance
arrow
Reconhecimento do Cloudflare Challenge usando bibliotecas prontas
O CapMonster Cloud oferece bibliotecas prontas para trabalhar em Python, JavaScript (Node.js) e C#.
Python
JavaScript
C#
Resolução do Challenge e inserção do cookie
Exemplo em Node.js para o ciclo completo de reconhecimento de captcha na sua página. Possíveis abordagens: usar requisições HTTP para obter o HTML e parâmetros do sistema de proteção, enviar a resposta e processar o resultado. Ou usando ferramentas de automação (ex.: Playwright) — abrir a página, aguardar a verificação, enviar os parâmetros via CapMonster Cloud, receber o resultado, inserir o cookie no navegador (para testes, pode usar dados corretos ou incorretos) e visualizar o resultado.

  // npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium

import { chromium } from 'playwright';
import {
  CapMonsterCloudClientFactory,
  ClientOptions,
  TurnstileRequest
} from '@zennolab_com/capmonstercloud-client';

// Configurações — substitua pelos seus valores
const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://www.example.com';
const SITE_KEY = 'xxxxx'; // É possível enviar qualquer string
const USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36';

// Configurações de proxy
const proxy = {
  proxyType: 'http',
  proxyAddress: '8.8.8.8',
  proxyPort: 8080,
  proxyLogin: 'proxyLogin',
  proxyPassword: 'proxyPassword'
};

async function main() {

  const cmcClient = CapMonsterCloudClientFactory.Create(
    new ClientOptions({ clientKey: API_KEY })
  );

  // Iniciando navegador
  const browser = await chromium.launch({
    headless: false,
    proxy: proxy.proxyAddress ? {
      server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
      username: proxy.proxyLogin,
      password: proxy.proxyPassword
    } : undefined
  });

  // Criando contexto com User-Agent e tamanho de janela necessário (opcional)
  const context = await browser.newContext({ userAgent: USER_AGENT, viewport: { width: 1280, height: 800 } });

  // Criando página e carregando URL alvo
  const page = await context.newPage();
  const resp = await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded', timeout: 60000 });
  console.log('Status da requisição inicial:', resp?.status());

  // Obtendo HTML da página e convertendo para Base64 para CapMonster
  const htmlBase64 = Buffer.from(await page.content(), 'utf-8').toString('base64');

  // Criando tarefa Turnstile para obter cf_clearance
  const solveResult = await cmcClient.Solve(new TurnstileRequest({
    websiteURL: TARGET_URL,
    websiteKey: SITE_KEY,
    cloudflareTaskType: 'cf_clearance',
    htmlPageBase64: htmlBase64,
    userAgent: USER_AGENT,
    proxy: proxy.proxyAddress ? proxy : undefined
  }));

  const cf_clearance = solveResult?.solution?.cf_clearance;
  if (!cf_clearance) {
    console.error('Não foi possível obter cf_clearance do CapMonster:', solveResult);
    await browser.close();
    return;
  }
  console.log('cf_clearance obtido:', cf_clearance);

  // Adicionando cookie cf_clearance ao contexto do navegador
  await context.addCookies([{
    name: 'cf_clearance',
    value: cf_clearance,
    domain: '.' + new URL(TARGET_URL).hostname,
    path: '/',
    httpOnly: true,
    secure: true
  }]);
  console.log('Cookie cf_clearance adicionado com sucesso ao navegador.');

  // Reabrindo página com cf_clearance definido
  const page2 = await context.newPage();
  const resp2 = await page2.goto(TARGET_URL, { waitUntil: 'domcontentloaded', timeout: 60000 });
  console.log('Status da solicitação após definir cf_clearance:', resp2?.status());

  await browser.close();
  console.log('Script finalizado.');
}

main().catch(err => {
  console.error('Ocorreu um erro:', err);
  process.exit(1);
});
  
Como conectar Cloudflare Challenge ao seu site
Para entender o comportamento do captcha no seu site, a lógica da verificação e como reconectar ou reconfigurar, recomendamos esta seção. Ela descreve o processo de configuração da proteção, ajudando a compreender rapidamente todos os detalhes.
1. Cadastre-se ou entre na sua conta e conecte o domínio à Cloudflare.
2. Ative o Challenge via regra WAF.
Acesse: Security → Custom Rules → Create rule
HowTo Connect image 1

Exemplo de condição (verifique toda a página de login):
http.request.uri.path contains "/login"
3. Escolha a ação:
Managed Challenge (recomendado) — o sistema decide automaticamente se e qual challenge exibir.
Defina as demais configurações desejadas e clique em Deploy.
Após a verificação, o usuário receberá um cookie cf_clearance, evitando que o Challenge seja exibido novamente no mesmo dispositivo e navegador.
Background
Possíveis erros e depuração
Bug Icon
Domínio inválido ou configuração da regra
O Challenge não está sendo exibido. Verifique se a regra WAF está vinculada ao URI, caminho ou host correto.
Bug Icon
Timeout ao carregar página ou challenge
O navegador ou cliente não aguardou a resposta da Cloudflare. Aumente os timeouts nos testes e monitoramento.
Bug Icon
Verificação repetida ou cf_clearance expirado
Se o visitante estiver usando um cf_clearance expirado, o sistema exibirá o Challenge novamente.
Bug Icon
Outra verificação após o Challenge
O uso simultâneo de Challenge + regras personalizadas pode causar verificações cíclicas. Siga as recomendações da Cloudflare para resolver.
Verificação da robustez
Recomendações de segurança e otimização
Configure regras WAF e Managed/JS/Interactive Challenge conforme o nível de risco.
Registre eventos de segurança e status do Challenge para entender bloqueios e falsos positivos.
Para transparência e conformidade, adicione links para a <b>Política de Privacidade</b> e os <b>Termos de Uso</b> da Cloudflare/site nas páginas com Challenge.
Conclusão

Se você herdou um site que já tem um captcha ou outro sistema de proteção instalado e não tem acesso ao código, não tem problema! É bem fácil identificar qual tecnologia está sendo usada. Para verificar se tudo está funcionando corretamente, você pode usar o serviço de reconhecimento CapMonster Cloud em um ambiente de testes isolado, para garantir que o mecanismo de processamento de tokens e a lógica de verificação estejam funcionando corretamente.

No caso de Cloudflare Challenge, basta identificar o sistema, analisar o comportamento dele e se certificar de que a proteção está funcionando corretamente. No artigo, mostramos como identificar Cloudflare Challenge e onde encontrar instruções para a integração ou reconfiguração, para que você consiga manter a proteção com segurança e controlar o funcionamento dela.

Conclusion