reCAPTCHA v3

O reCAPTCHA v3 retorna uma pontuação para cada solicitação sem atrito do usuário. A pontuação se baseia nas interações com o site e permite que você faça o que precisa. Registre as chaves do reCAPTCHA v3 no Admin Console do reCAPTCHA.

Esta página explica como ativar e personalizar o reCAPTCHA v3 na sua página da Web.

Posicionamento no site

O reCAPTCHA v3 nunca interrompe os usuários. Portanto, ele pode ser executado a qualquer momento sem afetar a conversão. O reCAPTCHA funciona melhor quando tem mais contexto sobre as interações com seu site, que vêm da visualização de comportamentos legítimos e abusivos. Por esse motivo, recomendamos incluir a verificação reCAPTCHA em formulários ou ações, bem como o segundo plano das páginas para análise.

Você pode executar o reCAPTCHA em quantas ações desejar na mesma página.

Vincular o desafio a um botão automaticamente

O método mais fácil de usar o reCAPTCHA v3 na sua página é incluir o recurso JavaScript necessário e adicionar alguns atributos ao botão HTML.

  1. Carregue a API JavaScript.

     <script src="https://www.google.com/recaptcha/api.js"></script>
    
  2. Adicione uma função de callback para gerenciar o token.

     <script>
       function onSubmit(token) {
         document.getElementById("demo-form").submit();
       }
     </script>
    
  3. Adicione atributos ao botão HTML.

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

Invoque o desafio de forma programática

Se você quiser ter mais controle sobre quando o reCAPTCHA é executado, use o método execute no objeto grecaptcha. Para fazer isso, você precisa adicionar um parâmetro render ao carregamento do script reCAPTCHA.

  1. Carregue a API JavaScript com a chave do site.

    <script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>
    
  2. Chame grecaptcha.execute em cada ação que você quer proteger.

       <script>
          function onClick(e) {
            e.preventDefault();
            grecaptcha.ready(function() {
              grecaptcha.execute('reCAPTCHA_site_key', {action: 'submit'}).then(function(token) {
                  // Add your logic to submit to your backend server here.
              });
            });
          }
      </script>
    
  3. Envie o token imediatamente para o back-end com a solicitação para verificar.

Como interpretar a pontuação

O reCAPTCHA v3 retorna uma pontuação (1,0 é muito provavelmente uma boa interação, 0,0 é muito provavelmente um bot). Com base na pontuação, é possível realizar ações variáveis no contexto do site. Cada site é diferente, mas abaixo estão alguns exemplos de como os sites usam a pontuação. Como nos exemplos abaixo, tome medidas nos bastidores em vez de bloquear o tráfego para proteger melhor seu site.

Caso de uso Recomendação
Página inicial Tenha uma visão coesa do tráfego no Admin Console ao filtrar as raspagens de informação.
login Com pontuações baixas, exija a autenticação de dois fatores ou a verificação de e-mail para evitar ataques de preenchimento de credenciais.
social Limite as solicitações de amizade não respondidas de usuários abusivos e envie comentários de risco para a moderação.
E-commerce Coloque vendas reais à frente dos bots e identifique transações arriscadas.

O reCAPTCHA aprende vendo o tráfego real no seu site. Por esse motivo, as pontuações em um ambiente de preparo ou logo após a implementação podem diferir da produção. Como o reCAPTCHA v3 nunca interrompe o fluxo do usuário, primeiro é possível executar o reCAPTCHA sem agir e, em seguida, decidir os limites analisando seu tráfego no Admin Console. Por padrão, é possível usar um limite de 0,5.

Ações

O reCAPTCHA v3 introduz um novo conceito: ações. Ao especificar um nome de ação em cada lugar em que você executa o reCAPTCHA, você ativa os seguintes novos recursos:

  • Um detalhamento dos dados das suas dez principais ações no Admin Console
  • Análise de risco adaptável com base no contexto da ação, porque o comportamento abusivo pode variar.

É importante ressaltar que, ao verificar a resposta reCAPTCHA, você precisa verificar se o nome da ação é o esperado.

Resposta de verificação do site

Faça a solicitação para verificar o token de resposta, como no reCAPTCHA v2 ou o reCAPTCHA invisível.

A resposta é um objeto JSON:

{
  "success": true|false,      // whether this request was a valid reCAPTCHA token for your site
  "score": number             // the score for this request (0.0 - 1.0)
  "action": string            // the action name for this request (important to verify)
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "hostname": string,         // the hostname of the site where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

Dicas

  1. grecaptcha.ready() executa a função quando a biblioteca reCAPTCHA é carregada. Para evitar disputas com o api.js, inclua o api.js antes dos scripts que chamam o grecaptcha ou continue usando o callback onload definido na API v2.
  2. Tente chamar a chamada execute para ações interessantes ou confidenciais, como registro, redefinição de senha, compra ou reprodução.
  3. Use https://www.google.com/recaptcha/api.js?trustedtypes=true para carregar código compatível com tipos confiáveis.