reCAPTCHA v3 – explicação da proteção invisível contra bots do Google

Se você já clicou em "Não sou um robô" ou selecionou cuidadosamente cada hidrante em uma grade de imagens, então já conheceu o reCAPTCHA v2. reCAPTCHA v3 é a resposta do Google à frustração que essa experiência causa — um sistema totalmente invisível de detecção de bots baseado em pontuação, que protege seu site sem pedir que os usuários façam absolutamente nada.
Este guia explica como o google recaptcha v3 funciona nos bastidores, como ele se compara ao seu antecessor, como a implementação aparece na prática e onde ferramentas como o CapMonster Cloud se encaixam nesse cenário.
Como o reCAPTCHA v3 funciona
O reCAPTCHA v3 opera totalmente em segundo plano, o que o torna fundamentalmente diferente de qualquer abordagem anterior de CAPTCHA. Não há quebra-cabeças, não há caixas de seleção e não há interrupções — em vez disso, o sistema do Google observa continuamente o comportamento do usuário e atribui uma pontuação de risco a cada interação no seu site.
O mecanismo de pontuação
Quando uma página é carregada com a biblioteca recaptcha v3 javascript ativa, o Google começa a coletar passivamente uma ampla variedade de sinais comportamentais e ambientais. Entre eles estão:
- Movimentos do mouse e padrões de clique — quão natural e fluida é a navegação do usuário pela página
- Comportamento de rolagem — tempo, velocidade e direção da rolagem
- Dinâmica de digitação — ritmo e cadência ao digitar
- Métricas de tempo na página — quanto tempo uma sessão dura antes que uma ação seja acionada
- Reputação do endereço IP — se o IP está associado a bots conhecidos, data centers, VPNs ou proxies
- Impressão digital do navegador — tipo de dispositivo, SO, versão do navegador, plugins instalados, resolução da tela
- Conta do Google e histórico de navegação — se o usuário estiver conectado a um serviço do Google, esse sinal entre sites melhora significativamente a precisão da pontuação
Todos esses sinais são alimentados no modelo de machine learning do Google, que foi treinado com grandes volumes de tráfego humano e de bots. O resultado é uma pontuação entre 0.0 e 1.0, retornada ao seu backend sempre que uma ação protegida é acionada.
Observação: no plano gratuito, o reCAPTCHA v3 expõe apenas quatro níveis discretos de pontuação (0.1, 0.3, 0.7 e 0.9). O intervalo completo de 11 níveis (0.0–1.0) exige que uma conta de faturamento esteja vinculada ao seu projeto no Google Cloud.
A tabela abaixo mostra interpretações de pontuação estabelecidas pela comunidade. O Google recomenda oficialmente começar com um limite de 0.5 e ajustá-lo com base nos seus padrões de tráfego — os subintervalos abaixo são convenções de desenvolvedores, não definições rígidas do Google:
Se o reCAPTCHA v3 atribuir uma pontuação baixa a um usuário, geralmente é melhor não bloqueá-lo imediatamente. Em vez disso, trate a sessão como de maior risco e acione uma verificação adicional, como um CAPTCHA visual, verificação por email, código de uso único ou autenticação multifator. Para ações sensíveis como login, cadastro ou checkout, você também pode desacelerar a solicitação, limitar tentativas repetidas ou encaminhar o caso para revisão manual, se necessário. Essa abordagem ajuda a reduzir falsos positivos, protege usuários legítimos e oferece um equilíbrio mais flexível entre segurança e experiência do usuário.
O sistema de actions
Um recurso arquitetural importante do recaptcha v3 google é o parâmetro action. Toda vez que você chama grecaptcha.execute(), você passa uma string nomeada de action — por exemplo, login, register, checkout ou contact_submit. Esse rótulo:
- É incorporado ao token enviado ao seu backend
- É incluído na resposta de verificação da recaptcha v3 api do Google
- É usado para criar análises de pontuação por action no Console de Administração do reCAPTCHA
Isso significa que seu backend pode verificar não apenas que uma pontuação foi retornada, mas também que essa pontuação corresponde à exata ação do usuário que você pretendia proteger — evitando ataques de reciclagem de token, nos quais um bot gera um token em uma página de baixo risco e o reutiliza em uma página de alto risco.
Ciclo de vida do token
Depois que grecaptcha.execute() é disparado, ele retorna um token de uso único válido por exatamente dois minutos. Seu frontend deve passar esse token para o seu backend imediatamente, e seu backend deve verificá-lo no endpoint siteverify antes que a janela expire. Tokens não podem ser reutilizados — uma segunda verificação do mesmo token falhará com o código de erro timeout-or-duplicate . Esse design garante que cada ação protegida esteja vinculada a um retrato comportamental novo e exclusivo.
O que o reCAPTCHA v3 NÃO faz
É importante entender os limites do sistema:
- Ele não bloqueia bots automaticamente. A pontuação é informativa — o código da sua aplicação decide como responder.
- Ele não garante detecção. Bots sofisticados que imitam de forma convincente padrões comportamentais humanos podem receber pontuações altas. Nenhuma camada única de proteção é infalível.
- Ele não adapta o limite por você. O Google retorna uma pontuação; você define a política. Uma pontuação de 0.4 pode ser aceitável em um formulário de inscrição em newsletter, mas completamente inaceitável em uma página de confirmação de transferência bancária.
Essa filosofia de design — pontuação sem imposição automática — dá aos desenvolvedores um controle preciso, mas também significa que a qualidade da sua proteção contra bots será tão boa quanto a lógica que você construir sobre essa pontuação.
Monitoramento contínuo em toda a página
Ao contrário do reCAPTCHA v2, que verifica um usuário em um único momento no tempo (o momento em que ele clica na caixa de seleção), o recaptcha version 3 pode ser chamado várias vezes ao longo de uma sessão — no carregamento da página, no foco do formulário e no envio. Cada chamada produz uma pontuação independente que reflete o comportamento até aquele momento. Isso permite criar uma verificação em camadas: uma pontuação de baixo risco no carregamento da página seguida por uma pontuação suspeita no envio do formulário pode acionar um desafio adicional no meio da sessão, sem nunca mostrar ao usuário um CAPTCHA não solicitado.
reCAPTCHA v3 vs. reCAPTCHA v2
Entender os trade-offs entre essas duas versões ajuda você a escolher a ferramenta certa para a página certa — e a evitar implantar uma proteção que ou frustra os usuários ou deixa lacunas nas suas defesas.
A diferença fundamental: challenge vs. scoring
O reCAPTCHA v2 opera em um modelo baseado em challenge. Quando o sistema suspeita de um visitante não humano, ele interrompe o fluxo do usuário e exige uma prova de humanidade — seja clicando na caixa de seleção "I'm not a robot" (que então avalia o movimento do mouse e o timing), seja concluindo um quebra-cabeça de reconhecimento de imagem. O resultado é binário: o usuário passa ou falha.
O reCAPTCHA v3 elimina os challenges por completo. Em vez de parar o usuário para fazer uma pergunta, ele observa o comportamento silenciosamente durante toda a sessão na página e retorna uma pontuação contínua de risco entre 0.0 e 1.0. Sua aplicação então decide o que fazer com essa pontuação — e essa camada de decisão está totalmente sob seu controle.
Comparação dos mecanismos de detecção
Como cada versão lida com tráfego suspeito
Com a v2, a lógica é direta: o Google decide se um challenge é necessário e o apresenta. Você recebe um token binário — válido ou não — e seu backend age de acordo. Essa simplicidade é seu ponto forte em implantações de baixa complexidade, mas também significa que você tem pouca visibilidade sobre quão suspeita uma solicitação realmente era.
Com a v3, a granularidade substitui a simplicidade. Uma pontuação de 0.9 e uma pontuação de 0.3 passam pela verificação técnica — mas contam histórias muito diferentes sobre aquele visitante. Sua aplicação pode responder de forma diferente a cada uma: concedendo acesso total com 0.9, exigindo confirmação por email com 0.4 ou bloqueando silenciosamente com 0.1.
O argumento da acessibilidade
Os quebra-cabeças de imagem no reCAPTCHA v2 há muito são criticados como uma barreira para usuários com deficiência visual, deficiências cognitivas ou baixo letramento, que têm dificuldade com texto distorcido ou categorias ambíguas de imagem. A alternativa em áudio muitas vezes é igualmente difícil. O modo reCAPTCHA v3 invisible contorna esse problema por completo — usuários com deficiência não enfrentam nenhum atrito adicional em comparação com qualquer outra pessoa.
Dito isso, a v3 introduz sua própria forma de inacessibilidade indireta: se os sinais comportamentais de um determinado tipo de usuário (por exemplo, alguém que usa apenas navegação por teclado ou uma tecnologia assistiva que produz padrões atípicos de interação) receberem consistentemente pontuações baixas, esses usuários poderão ser penalizados silenciosamente sem qualquer forma de recorrer ou de se identificar como humanos. Ajuste de limites e estratégias de fallback são, portanto, importantes para implantações inclusivas.
Quando escolher v2 vs. v3
Escolha o reCAPTCHA v2 quando:
- Você precisa de um ponto de verificação de segurança simples e visível, com configuração mínima no backend
- Sua equipe não tem a infraestrutura para interpretar e agir com base em pontuações de risco
- Você quer que os usuários tenham um sinal claro e transparente de que a proteção contra bots está ativa
- Você está protegendo um formulário de baixo tráfego, em que algum atrito ocasional para o usuário é aceitável
Escolha o reCAPTCHA v3 quando:
- Você prioriza uma UX sem atrito — especialmente em páginas de checkout, fluxos de login ou formulários de cadastro, em que o abandono custa caro
- Você quer controle refinado sobre como sua aplicação responde a diferentes níveis de risco
- Você opera propriedades de alto tráfego, em que challenges universais criariam uma sobrecarga significativa de suporte
- Você quer coletar dados de sinais de risco passivamente e usá-los para analytics, não apenas para controle de acesso
Também vale destacar que as duas versões não são mutuamente exclusivas. Um padrão comum de implantação é executar a v3 como camada principal e acionar um challenge da v2 como fallback apenas quando a v3 retorna uma pontuação baixa.
A vantagem de UX do reCAPTCHA v3 Invisible
O benefício mais imediato da operação recaptcha v3 invisible é que os usuários nunca sabem que ela está ali. Não há grades de imagens para forçar a vista, nem quebra-cabeças em áudio, nem caixa de seleção para procurar em uma tela de celular. A proteção acontece totalmente em segundo plano.
Isso importa para a conversão. O atrito em qualquer etapa da jornada do usuário — especialmente em login, cadastro ou checkout — afeta diretamente as taxas de abandono. Ao eliminar a interrupção causada pelo challenge, o google recaptcha v3 permite que usuários legítimos avancem pelas ações protegidas sem obstáculos.
Dito isso, o trade-off de UX não é zero. Como a v3 depende de perfilamento comportamental, ela pode atribuir silenciosamente pontuações suspeitas a usuários legítimos — por exemplo, usuários avançados que se movem de forma incomumente rápida, usuários preocupados com privacidade por trás de VPNs ou visitantes de regiões geográficas inesperadas. Se o seu limite estiver configurado de forma agressiva demais, clientes reais poderão ser bloqueados silenciosamente sem explicação. O limite inicial recomendado é 0.5, mas ele deve ser ajustado com base nos seus próprios padrões de tráfego.
API do reCAPTCHA v3: guia passo a passo
Integrar o reCAPTCHA v3 envolve três etapas sequenciais: registrar suas chaves, configurar o recaptcha v3 javascript no frontend e verificar o token no backend. Aqui está o fluxo completo.
Etapa 1 — registre suas chaves no Google Admin Console
Antes de escrever uma única linha de código, você precisa das credenciais.
- Acesse o Google reCAPTCHA Admin Console.
- Preencha o campo Label name e selecione reCAPTCHA v3 (baseado em pontuação, sem challenge).
- Adicione todos os domínios em que seu site é executado (por exemplo, example.com, www.example.com).
- Selecione seu projeto do Google Cloud Platform, se houver. Caso contrário, ele será criado automaticamente.
- Envie o formulário. O Google fornecerá duas chaves:
- Site key — pública; usada no HTML/JS do frontend.
- Secret key — privada; usada apenas no servidor backend. Nunca a exponha no código do lado do cliente.
Etapa 2 — carregue a biblioteca JavaScript do reCAPTCHA v3
Em cada página que você deseja proteger, carregue o script da recaptcha v3 api adicionando a seguinte tag ao <head> do seu HTML, substituindo YOUR_SITE_KEY pela sua chave real:
<script src="https://www.google.com/recaptcha/api.js?render=YOUR_SITE_KEY"></script>Esse único trecho inicializa o mecanismo recaptcha v3 google e começa a coletar passivamente sinais comportamentais em segundo plano — nenhum widget é mostrado ao usuário.
Etapa 3 — execute o reCAPTCHA em uma ação protegida
Ao contrário do recaptcha v2, você não renderiza um widget. Em vez disso, chama grecaptcha.execute() programaticamente no momento em que o usuário aciona uma ação protegida.
Opção A — botão com data-attributes (formulários simples):
<form id="login-form">
<!-- os campos do seu formulário -->
<button
class="g-recaptcha"
data-sitekey="YOUR_SITE_KEY"
data-callback="onSubmit"
data-action="login"
type="button">
Entrar
</button>
</form>
<script>
function onSubmit(token) {
fetch("/api/login", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ recaptchaToken: token })
});
}
</script>Opção B — execução programática (recomendada para fluxos AJAX/API):
<script src="https://www.google.com/recaptcha/api.js?render=YOUR_SITE_KEY"></script>
<script>
async function submitLogin() {
const token = await new Promise((resolve) => {
grecaptcha.ready(() => {
grecaptcha.execute("YOUR_SITE_KEY", { action: "login" }).then(resolve);
});
});
// Envie o token imediatamente -- ele expira em 2 minutos
await fetch("/api/login", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ recaptchaToken: token })
});
}
</script>Regra principal: o nome da action (por exemplo, login, signup, checkout) deve corresponder ao que seu backend espera. Isso evita a reutilização de tokens entre diferentes endpoints.
Etapa 4 — verifique o token no backend
Seu servidor recebe o token e o encaminha para o endpoint siteverify do Google antes de processar a solicitação do usuário.
Exemplo em Node.js (com tratamento de erros):
import express from "express";
const app = express();
app.use(express.json());
app.post("/api/login", async (req, res) => {
const token = req.body.recaptchaToken;
const params = new URLSearchParams();
params.set("secret", process.env.RECAPTCHA_SECRET);
params.set("response", token);
let data;
try {
const verifyResp = await fetch("https://www.google.com/recaptcha/api/siteverify", {
method: "POST",
headers: { "content-type": "application/x-www-form-urlencoded" },
body: params
});
data = await verifyResp.json();
} catch (err) {
console.error("reCAPTCHA verification network error:", err);
return res.status(503).json({ error: "verification_unavailable" });
}
// → prossiga para a Etapa 5
});Observação: o fetch nativo está disponível no Node.js 18+. Em versões mais antigas, use node-fetch ou axios.
Exemplo em Python (Flask ≥ 2.0):
import os, requests
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.post("/api/signup") # Requer Flask >= 2.0
def signup():
token = request.json.get("recaptchaToken")
resp = requests.post(
"https://www.google.com/recaptcha/api/siteverify",
data={"secret": os.environ["RECAPTCHA_SECRET"], "response": token},
timeout=5
)
data = resp.json()
# → prossiga para a Etapa 5
if not data.get("success"):
return jsonify({"error": "recaptcha_failed"}), 403
return jsonify({"ok": True})Etapa 5 — interprete a pontuação e tome uma ação
O endpoint siteverify do Google retorna uma resposta JSON. Veja como é uma resposta bem-sucedida:
{
"success": true,
"score": 0.7,
"action": "login",
"challenge_ts": "2026-02-27T10:00:00Z",
"hostname": "example.com"
}Seu backend deve verificar três coisas, nesta ordem:
- success é true— o token é válido e foi aceito pelo Google.
- action corresponde ao valor esperado — isso confirma que o token foi gerado para o contexto correto.
- score atinge o seu limite — 0.5 é o ponto de partida recomendado pelo Google.
Etapa 6 — trate os erros de forma adequada
A resposta de siteverify pode incluir um array error-codes. Os mais importantes para tratar são:
- timeout-or-duplicate — o token tem mais de 2 minutos ou já foi usado; execute grecaptcha.execute() novamente no cliente para obter um token novo.
- missing-input-secret / invalid-input-secret — sua secret key está ausente ou incorreta; isso é um bug de configuração, não um erro do usuário.
- missing-input-response / invalid-input-response — o token não foi enviado ou está malformado; verifique sua integração no frontend.
- bad-request — a solicitação geral para siteverify está malformada.
Nunca exponha códigos de erro brutos aos usuários finais — registre-os no servidor e mostre uma mensagem genérica como "tente novamente".
Etapa 7 — teste sua integração de ponta a ponta
Antes de ir para produção, verifique o fluxo completo:
- Abra sua página protegida, acione a ação e confirme que um token é gerado no navegador.
- Registre a resposta bruta de siteverify no backend para confirmar success: true, um score válido e a action correta.
- Para testes automatizados, o CapMonster Cloud fornece uma solver API que gera programaticamente tokens válidos de reCAPTCHA v3. Ele oferece suporte a reCAPTCHA v3, v2 e Enterprise e integra via REST API.
- Confirme que seus fluxos de tratamento de erro funcionam enviando um token expirado ou malformado e verificando se o backend retorna a resposta correta.
Considerações sobre privacidade e conformidade
O modelo de perfilamento comportamental do reCAPTCHA version 3 traz implicações relevantes de privacidade. O sistema coleta movimentos do mouse, timing de teclas, impressões digitais do navegador, endereços IP e mais — dados que vão muito além do estritamente necessário para verificar se o usuário é humano.
Para operadores europeus em particular, isso cria exposição ao GDPR. Em uma ação de fiscalização relevante em 2023, a autoridade francesa de proteção de dados (CNIL) multou a empresa de e-scooters Cityscoot em €125,000 por múltiplas violações do GDPR — incluindo tanto a coleta excessiva de dados de geolocalização (rastreamento dos scooters a cada 30 segundos) quanto a implantação do Google reCAPTCHA sem o devido consentimento do usuário. A CNIL decidiu que o acesso do reCAPTCHA aos dados do terminal do usuário exige consentimento prévio nos termos do Artigo 82 da Lei Francesa de Proteção de Dados — e não se trata apenas de um widget de segurança passivo. Se você opera sob o GDPR, implementar um Data Processing Agreement adequado com o Google e obter o consentimento apropriado dos usuários é essencial antes de implantar o google recaptcha v3.
CapMonster Cloud e reCAPTCHA v3
CapMonster Cloud é um serviço de reconhecimento e automação de CAPTCHA com IA que oferece suporte a reCAPTCHA v2, v3 e Enterprise, entre muitos outros tipos de CAPTCHA. Para equipes de desenvolvimento e testes, ele fornece uma forma de automatizar interações com formulários protegidos por reCAPTCHA sem intervenção manual — útil para testes de integração, pipelines automatizados de monitoramento ou fluxos legítimos de scraping em que o tratamento de CAPTCHA se torna um gargalo.
No contexto de using recaptcha v3, o CapMonster Cloud funciona como uma solver API: dado um URL de destino e uma site key, ele retorna um token reCAPTCHA válido que pode ser enviado ao endpoint protegido exatamente como um navegador real faria.
Exemplo de resolução de reCAPTCHA v3 usando CapMonster Cloud:
Criar tarefa:
POST
https://api.capmonster.cloud/createTaskRequisição
{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta",
"websiteKey": "6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob",
"isEnterprise": false,
"minScore": 0.7,
"pageAction": "myverify"
}
}Resposta
{
"errorId":0,
"taskId":407533072
}
Obter resultado da tarefa:
POST
https://api.capmonster.cloud/getTaskResultRequisição
{
"clientKey":"API_KEY",
"taskId": 407533072
}Resposta
{
"errorId":0,
"status":"ready",
"solution": {
"gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
}
}A documentação detalhada da API e exemplos de integração estão disponíveis em capmonster.cloud.
Conclusão
O reCAPTCHA v3 representa um avanço relevante no equilíbrio entre proteção contra bots e experiência do usuário. Ao mover a verificação totalmente para segundo plano e substituir a lógica binária de pass/fail por uma pontuação de risco mais sofisticada, o recaptcha google v3 permite que as equipes de segurança ajam proporcionalmente — bloqueando bots evidentes, aumentando o atrito para sessões suspeitas e deixando usuários legítimos completamente sem perturbação.
Os trade-offs são reais: interpretar a pontuação exige investimento no backend, ajustar limites leva tempo, e a pegada de privacidade não é trivial sob o GDPR. Mas, para a maioria das aplicações web em produção — especialmente aquelas em que o atrito em login, cadastro ou checkout custa conversões — o upgrade da v2 vale muito a pena.
Pronto para implementar o reCAPTCHA v3 no seu site — ou automatizar seu pipeline de testes em torno dele? Visite o CapMonster Cloud para explorar a resolução de CAPTCHA com IA para reCAPTCHA v3, v2 e Enterprise — com documentação completa da API e exemplos de integração para você começar em poucos minutos.






