reCAPTCHA v3
e CapMonster Cloud

Solução de captcha, instalação no site e testes.

Preços da solução reCAPTCHA v3

CAPTCHA
Preço (USD)
$ 0.90
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 v3, 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 v3, 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 v3
O que é o Google reCAPTCHA v3
reCAPTCHA v3 é uma proteção invisível do Google que diferencia usuários reais de bots sem a necessidade da caixa de seleção “Não sou um robô”. Um script oculto é executado na página, analisa o comportamento do visitante e retorna uma pontuação de confiança (score) de 0,0 a 1,0. O desenvolvedor define um limite abaixo do qual pode ser exigida uma verificação adicional ou até o bloqueio, garantindo proteção sem ações extras por parte do usuário.

Como resolver o reCAPTCHA v3 usando o CapMonster Cloud

Ao testar formulários com reCAPTCHA v3, é 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
Reconhecimento do reCAPTCHA v3 com bibliotecas prontas
O serviço CapMonster Cloud fornece bibliotecas prontas para uso conveniente com as linguagens Python, JavaScript (Node.js) e C#.
Python
JavaScript
C#
Resolução, inserção do token e envio do formulário
Exemplo em Node.js para o ciclo completo de reconhecimento do captcha na sua página web. Abordagens possíveis: usar requisições HTTP para obter o HTML e os parâmetros do captcha, enviar a resposta e processar o resultado; ou, com ferramentas de automação (por exemplo, Playwright), abrir a página, aguardar o carregamento do captcha, enviar os parâmetros (para testes, você pode enviar dados corretos ou incorretos), obter o resultado por meio do cliente do CapMonster Cloud, inserir o token no formulário e visualizar o resultado.
const { chromium } = require('playwright');
const { 
  CapMonsterCloudClientFactory, 
  ClientOptions, 
  RecaptchaV3ProxylessRequest 
} = require('@zennolab_com/capmonstercloud-client');

(async () => {
  const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta'; // URL da sua página com o captcha
  const SITE_KEY = '6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob';
  const API_KEY = 'your_capmonster_cloud_api_key'; // Informe sua chave de API do CapMonster Cloud

  // Criando o cliente do CapMonster
  const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));

  // Abrindo o navegador
  const browser = await chromium.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });

  // Configuração da tarefa do reCAPTCHA v3
  const recaptchaRequest = new RecaptchaV3ProxylessRequest({
    websiteURL: TARGET_URL,
    websiteKey: SITE_KEY,
    minScore: 0.6,
    pageAction: 'myverify', // correspondência com o action na página
  });

  // Resolvendo o captcha
  const solution = await cmcClient.Solve(recaptchaRequest);
  const token = solution.solution?.gRecaptchaResponse;

  if (!token) {
    console.error('O token está vazio, verifique a sitekey e a URL');
    await browser.close();
    return;
  }

  console.log('Token recebido:', token);

  // Inserindo o token em um campo oculto e simulando o clique no botão 
  // Substitua pelos seletores necessários
  await page.evaluate((t) => {
    const input = document.querySelector('#v3_token');
    if (input) input.value = t;

    const form = document.querySelector('#v3_form');
    if (form) form.submit();
  }, token);

  console.log('Token inserido e formulário enviado');

  await page.waitForTimeout(5000);
  await browser.close();
})();
Como conectar o reCAPTCHA v3 ao seu site
Para entender bem como o captcha funciona no seu site, a lógica de validação, e como reconectar ou reconfigurar a proteção, recomendamos estudar esta seção. Nela, é descrito o processo de conexão da proteção — isso ajudará você a compreender rapidamente todos os detalhes.

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

2. Registre um novo site e escolha o tipo de captcha — reCAPTCHA v3

HowTo Connect image 1

3. Obtenha duas chaves:

  • Site key — chave pública (usada no frontend);
  • Secret key — chave privada (usada no servidor para verificação)

HowTo Connect image 2

Você pode abrir as configurações, onde é possível, por exemplo, especificar os domínios nos quais o reCAPTCHA será utilizado ou configurar alertas sobre problemas no site ou aumento de tráfego suspeito.

4. Exemplos de código para o lado do cliente

A maneira mais simples de usar o reCAPTCHA v3 é conectar a API JavaScript e adicionar atributos a um botão.

Conectando a API:

<script src="https://www.google.com/recaptcha/api.js"></script>

Função de callback para o formulário:

<script>
  function onSubmit(token) {
    document.getElementById("form").submit();
  }
</script>

Botão com atributos do reCAPTCHA:

<button class="g-recaptcha" 
        data-sitekey="reCAPTCHA_sitekey" 
        data-callback='onSubmit' 
        data-action='submit'>Submit</button>

Para controle total, use grecaptcha.execute com o parâmetro render:

Conectando a API com a chave:

<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>

Chamada programática:

<script>
  function onClick(e) {
    e.preventDefault();
    grecaptcha.ready(function() {
      grecaptcha.execute('reCAPTCHA_sitekey', {action: 'submit'}).then(function(token) {
          // Envie o token para o servidor para verificação
      });
    });
  }
</script>

O token deve ser enviado imediatamente ao servidor para verificação.

Observações importantes:

  • Validade do token: o token recebido do reCAPTCHA v3 é válido por 2 minutos. Certifique-se de enviá-lo ao servidor dentro desse período.
  • Verificação no servidor: após receber o token no servidor, envie uma requisição POST para https://www.google.com/recaptcha/api/siteverify com os parâmetros:
    – secret: sua chave secreta
    – response: o token recebido do cliente
    – remoteip (opcional): endereço IP do usuário
  • O servidor do Google retornará uma resposta JSON contendo informações sobre o resultado da verificação.

5. Agora, no lado do servidor, faça a validação da resposta

Exemplo em PHPExemplo em PHP
arrow

Observações:

  • Certifique-se de que, no cliente, o token seja enviado em um campo oculto do formulário com o nome recaptcha-token:
    • <input type="hidden" name="recaptcha-token" id="recaptcha-token">

      • O limite do score pode ser ajustado de acordo com o nível de rigor desejado (por exemplo, 0,3–0,7).
      • A validação de action === 'submit' aumenta a segurança, garantindo que o token foi gerado para a ação correta na página.
Background
Possíveis erros e depuração
Bug Icon
Site ou chave incorretos
O captcha não é carregado ou retorna invalid-input-secret.
Bug Icon
Tempo limite de resolução
O servidor não recebeu a resposta a tempo, aumente o tempo de espera.
Bug Icon
Token vazio
Erro ao enviar o resultado para a página.
Bug Icon
Resposta success=false
O token está expirado, foi reutilizado ou foi adulterado. Para diagnóstico, ative o log das requisições e verifique o campo error-codes na resposta do Google.
Bug Icon
Score baixo (por exemplo, <0.5)
Pode levar à recusa mesmo com success=true, já que o Google avalia o nível de confiança no usuário.
Bug Icon
Verifique o action
Para garantir que o token foi emitido para uma ação específica da página
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, não a envie para o lado do cliente.
Registre os códigos de erro (<span class="font-bold">error-codes</span>) e o valor de <span class="font-bold">score</span> para entender os motivos das rejeições.
<span class="font-bold">Verifique o campo action</span> na resposta do Google para garantir que o token foi emitido para a ação correta na página.
Adicione ao final do formulário links para a <span class="font-bold">Política de Privacidade</span> e 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 v3, 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 v3 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 v3

O CapMonster Cloud oferece bibliotecas cliente oficiais para Python, JavaScript (Node.js) e C#. Essas bibliotecas simplificam a integração do reCAPTCHA v3 e evitam a implementação manual de requisições HTTP.

Por exemplo, em Node.js você pode usar o pacote @zennolab_com/capmonstercloud-client, que permite obter um token e injetá-lo em um formulário em apenas algumas linhas de código.

Se não houver uma biblioteca dedicada para sua linguagem, use a API REST universal (createTask / getTaskResult). Ela funciona com qualquer cliente HTTP, incluindo curl, requests, axios e outros.

A estrutura completa da requisição está disponível na documentação da API.

O parâmetro minScore aceita valores de 0.1 a 0.9 e informa ao CapMonster Cloud a pontuação de confiança mínima que o token retornado deve ter. 0.7 é um ponto de partida razoável. Um valor muito alto (ex.: 0.9) aumenta a chance de falhas na resolução; um valor muito baixo pode retornar tokens com pontuação que seu limiar no servidor deveria rejeitar de qualquer forma. Ajuste o valor com base nas taxas de rejeição reais no seu ambiente de teste.

Um token recebido do reCAPTCHA v3 é válido por aproximadamente 2 minutos. Seu pipeline de automação deve enviar o token ao servidor dentro desse prazo; após expirar, o endpoint siteverify do Google retorna success: false. Mantenha a etapa de resolução o mais próxima possível do envio do formulário e evite armazenar tokens em cache entre requisições.

Para injetar um token reCAPTCHA v3, encontre o campo de resposta oculto (geralmente um textarea ou input com o ID g-recaptcha-response) e insira o token obtido do serviço de resolução CAPTCHA. Veja como fazer nos três frameworks de automação.

Playwright / Puppeteer (Node.js)

const token = "YOUR_TOKEN";
await page.evaluate((t) => {
  document.getElementById('g-recaptcha-response').value = t;
}, token);
await page.click('#submit-btn');

Selenium (Python)

token = "YOUR_TOKEN"
driver.execute_script(f"document.getElementById('g-recaptcha-response').value = '{token}';")
driver.find_element("id", "submit-btn").click()

Alguns sites usam funções de callback para validar o token. Se o formulário não for enviado, encontre o nome da função no console (___grecaptcha_cfg.clients) e chame-a manualmente:

// Example of calling a callback in Playwright/Puppeteer
await page.evaluate((t) => { window.onSuccessCallback(t); }, token);

Uma resposta success: true do Google significa apenas que o token é válido. Seu backend ainda pode rejeitar a requisição se a pontuação do token estiver abaixo do limiar configurado.

Outro problema comum é incompatibilidade de action. O token deve ser verificado com o mesmo valor action usado na criação da tarefa.

Para diagnosticar o problema:

  • verifique o campo score na resposta siteverify;
  • confirme que o valor action corresponde;
  • inspecione error-codes quando success for false.

Se success for true, o array error-codes geralmente está vazio — score e action são os principais campos a verificar.