reCAPTCHA v2
e CapMonster Cloud

Resolver captchas, integrar no site e testar ponta a ponta.

Preços da solução reCAPTCHA V2

CAPTCHA
Preço (USD)
$ 0.60
1000 tokens
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 reCAPTCHA V2, 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 reCAPTCHA V2, 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 é o Google reCAPTCHA v2
O que é o Google reCAPTCHA v2
O reCAPTCHA v2 é um sistema de proteção do Google criado para bloquear spam e outras ações automatizadas que podem prejudicar um site. Ele ajuda a distinguir visitantes reais de bots, mantendo o recurso web seguro e estável.
Background
Exemplos de reCAPTCHA V2
reCAPTCHA v2
reCAPTCHA v2
A captcha clássica com uma caixa de seleção em que o usuário confirma que é humano. Em alguns casos aparece uma janela com uma tarefa adicional, como selecionar certas imagens.
reCAPTCHA v2 Invisible
reCAPTCHA v2 Invisible
Versão invisível da captcha que valida automaticamente, sem interação do usuário e sem necessidade de clicar na caixa.
reCAPTCHA v2 Enterprise
reCAPTCHA v2 Enterprise
Versão Enterprise com recursos extras de controle e segurança.

Como resolver o reCAPTCHA v2 com o CapMonster Cloud

Ao testar formulários com reCAPTCHA V2, é comum precisar confirmar se a captcha está funcionando e integrada corretamente.

Você pode testar manualmente a captcha incorporada no site.

  • Abra a página do formulário e veja se a captcha é exibida.
  • Tente enviar sem resolver — o servidor deve retornar erro.
  • Depois de resolver corretamente, o envio precisa ocorrer sem falhas.

Para resolver automaticamente use ferramentas como o CapMonster Cloud, que recebe os parâmetros da captcha, processa em seus servidores e devolve um token pronto. Basta inseri-lo no formulário para passar na verificação sem interação humana.

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
Aplicação do token na páginaAplicação do token na página
arrow
Resolvendo reCAPTCHA v2 com bibliotecas prontas
O CapMonster Cloud fornece SDKs prontos para Python, JavaScript (Node.js) e C#.
Python
JavaScript
C#
Resolver, inserir o token e enviar o formulário
Exemplo em Node.js que cobre todo o ciclo de resolução em sua página. Abordagens possíveis: usar requisições HTTP para coletar o HTML e os parâmetros, enviar a resposta e tratar o resultado; ou utilizar ferramentas de automação (como Playwright) para abrir a página, esperar a captcha, enviar parâmetros (válidos ou não), receber o resultado via cliente CapMonster Cloud, inserir o token no formulário e observar o resultado.
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium


const { chromium } = require('playwright');
const { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2Request } = require('@zennolab_com/capmonstercloud-client');

(async () => {
  const browser = await chromium.launch({ headless: false });
  const page = await browser.newPage();

  const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=high';
  const WEBSITE_KEY = '6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd';
  const CMC_API_KEY = 'your_capmonster_cloud_api_key';

  const cmc = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: CMC_API_KEY }));

  await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });

  // Processo de resolução da captcha
  const solution = await cmc.Solve(new RecaptchaV2Request({ websiteURL: TARGET_URL, websiteKey: WEBSITE_KEY }));
  const token = solution.solution.gRecaptchaResponse;

  // Insira o token e envie o formulário (substitua pelo seletor desejado)
  await page.evaluate((t) => {
    const ta = document.querySelector('textarea#g-recaptcha-response');
    if (ta) ta.value = t;
    document.querySelector('form.formular')?.submit();
  }, token);

  console.log('Captcha resolvida e formulário enviado!');
})();
Como conectar o reCAPTCHA v2 ao seu site
Para entender como a captcha opera, qual é a lógica de validação e como reinstalá-la ou reconfigurá-la, consulte esta seção. Ela descreve todo o processo de configuração de proteção.

1. Acesse a página do console de administração do reCAPTCHA.

2. Cadastre um novo site.

Escolha o tipo de captcha — reCAPTCHA v2 (checkbox com desafios ou variante invisível).

HowTo Connect image 1

3. Obtenha duas chaves:

  • Site key — chave pública usada no front-end;
  • Secret key — chave privada usada no servidor.

HowTo Connect image 2

Abra as configurações para definir os domínios permitidos e o nível de segurança desejado.

4. Exemplo de código client-side. Formulário HTML com reCAPTCHA v2 (pode ser colado diretamente no body):

Formulário HTML com reCAPTCHA v2Formulário HTML com reCAPTCHA v2
arrow

5. Valide a resposta no servidor.

Exemplo em PHPExemplo em PHP
arrow
Background
Possíveis erros e depuração
Bug Icon
Site ou chave inválidos
A captcha não carrega ou retorna invalid-input-secret.
Bug Icon
Tempo limite de resolução
O servidor não recebeu a resposta a tempo. Amplie o tempo de espera.
Bug Icon
Token vazio
Ocorreu um erro ao repassar o resultado para a página.
Bug Icon
Response success=false
O token expirou, foi reutilizado ou adulterado. Ative o registro de requisições e confira o campo error-codes retornado pelo Google.
Verificação da robustez
Depois da integração, confirme que o sistema de fato protege o site contra ações automatizadas.
Recomendações de segurança e otimização
Armazene a <span class="font-bold">Secret Key</span> apenas no servidor e nunca a envie para o lado do cliente.
Registre (logue) os códigos de erro <span class="font-bold">(error-codes)</span> para entender por que verificações específicas falharam.
Adicione, na parte inferior do formulário, links para a <span class="font-bold">Política de Privacidade</span> e para os <span class="font-bold">Termos de Uso do Google</span>, conforme exigido pela licença.
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 reCAPTCHA V2, basta identificar o sistema, analisar o comportamento dele e se certificar de que a proteção está funcionando corretamente. No artigo, mostramos como identificar reCAPTCHA V2 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

Perguntas frequentes sobre reCAPTCHA v2

Para enviar uma solicitação de resolução, faça POST com um JSON em https://api.capmonster.cloud/createTask:

{
  "clientKey": "API_KEY",
  "task": {
    "type": "RecaptchaV2Task",
    "websiteURL": "[target_page_URL_with_reCAPTCHA]",
    "websiteKey": "[reCAPTCHA_website_key]"
  }
}
  • clientKey — a chave API da sua conta CapMonster Cloud
  • task.type: defina RecaptchaV2Task
  • task.websiteURL: URL da página onde o captcha aparece
  • task.websiteKey: o sitekey público incorporado no HTML da página

Para os próximos passos, consulte a documentação de resolução de reCAPTCHA.

Envie a tarefa com uma requisição para https://api.capmonster.cloud/createTask com os parâmetros descritos na pergunta anterior.

Consulte https://api.capmonster.cloud/getTaskResult com seu clientKey e taskId (retornado na resposta do createTask).

Quando o campo status for ready, a resposta incluirá a string gRecaptchaResponse — esse é o seu token resolvido.

Envie o token ao site de destino usando um dos métodos a seguir, conforme o tipo de reCAPTCHA v2 e a arquitetura do site:

  • Injeção DOM padrão: para integrações típicas com checkbox, injete o token na área de texto oculta (ex.: document.getElementById("g-recaptcha-response").innerHTML = token;) usando page.evaluate() do Playwright (ou o equivalente em Puppeteer/Selenium). Em seguida, chame programaticamente form.submit() ou acione o botão de envio.
  • Callback JavaScript (reCAPTCHA invisível): se a página usar um captcha invisível com callback, identifique o nome da função no atributo data-callback e execute-a no seu script de automação, passando o token como argumento (ex.: onVerifyCallback("TOKEN_STRING")).
  • Requisição HTTP direta: para evitar a renderização no navegador, intercepte a requisição nativa de envio do site e envie o token diretamente ao backend como parte dos dados do formulário (ex.: g-recaptcha-response=TOKEN_STRING) usando seu cliente HTTP.

O servidor de destino extrai o token do seu envio e valida no endpoint siteverify do Google.

O CapMonster Cloud trata os dois modos com a mesma chamada de API. Para o modo invisível, inclua o parâmetro isInvisible: true na requisição createTask. Para confirmar corretamente a solução do reCAPTCHA, determine o método que o site usa para enviar o token. Esses métodos estão descritos na pergunta anterior.

A causa mais frequente é um token já usado ou expirado — os tokens do reCAPTCHA v2 são de uso único e de curta duração, então qualquer atraso ou envio duplicado causará isso. Comece registrando a resposta HTTP bruta de https://www.google.com/recaptcha/api/siteverify — o array error-codes nessa resposta é o principal sinal de diagnóstico.

Outras duas causas comuns: invalid-input-secret significa que a chave secreta errada foi passada no backend, enquanto um campo g-recaptcha-response vazio no servidor geralmente indica que a injeção do token no frontend falhou silenciosamente antes do envio do formulário.

Verifique também se a websiteURL passada ao CapMonster Cloud corresponde exatamente à origem onde o Google valida o token — uma divergência gera erro de vinculação de domínio.

Para usuários não técnicos: use a extensão de navegador CapMonster Cloud (Chrome/Firefox). Ela permite testar o comportamento do captcha diretamente na página e acompanhar o processo de resolução em tempo real. Instale a extensão, adicione sua chave API e abra sua página protegida por reCAPTCHA.

Para QA e DevOps: siga um teste simples em três etapas:

  1. Envie o formulário sem resolver o captcha — deve retornar success: false.
  2. Envie o formulário com o captcha resolvido — a requisição deve ser bem-sucedida.
  3. Execute testes de carga (k6 ou JMeter, 100+ RPS) e verifique se tokens expirados ou reutilizados são corretamente rejeitados (ex.: HTTP 403).

Importante: siteverify sempre retorna HTTP 200 — os erros são determinados pelo campo success, e não pelo código de status HTTP.