Implementare l'integrazione di reCAPTCHA Enterprise per WAF e Google Cloud Armor

Questo documento illustra come implementare una pagina di verifica reCAPTCHA, i token di azione reCAPTCHA e i token di sessione reCAPTCHA per Google Cloud Armor.

Prima di iniziare

Prima di utilizzare una pagina di verifica reCAPTCHA, token di azione o token di sessione, attiva l'API reCAPTCHA Enterprise.

  1. Nella console, vai alla pagina API reCAPTCHA Enterprise.

    Vai all'API reCAPTCHA Enterprise

  2. Verifica che il nome del progetto venga visualizzato nel selettore dei progetti nella parte superiore della pagina. Se non vedi il nome del progetto, fai clic sul selettore di progetto, quindi seleziona il progetto.

  3. Fai clic su Abilita.

Implementare una pagina di verifica reCAPTCHA

Quando implementi una pagina di verifica reCAPTCHA, reCAPTCHA Enterprise determina se è necessario mostrare una verifica CAPTCHA a un utente. Pertanto, le verifiche CAPTCHA potrebbero non essere visibili a tutti gli utenti.

Per implementare una pagina di verifica reCAPTCHA, procedi nel seguente modo:

  1. Crea una chiave del sito della pagina di verifica WAF reCAPTCHA.

    console

    1. Nella console, vai alla pagina reCAPTCHA Enterprise.

      Vai a reCAPTCHA Enterprise

    2. Verifica che il nome del progetto venga visualizzato nel selettore di risorse nella parte superiore della pagina.

      Se non vedi il nome del tuo progetto, fai clic sul selettore di risorse, quindi seleziona il progetto.

    3. Fai clic su Crea chiave.

    4. Nel campo Nome visualizzato, inserisci un nome visualizzato per la chiave.
    5. Dal menu a discesa Scegli il tipo di piattaforma, seleziona Sito web.

    6. Espandi la sezione Web application firewall (WAF), verifica del dominio, pagine AMP e richiesta di verifica.
    7. Attiva l'opzione Web application firewall (WAF).
    8. Dal menu a discesa Funzionalità, seleziona Pagina sfida.

    9. Attiva l'opzione Disattiva verifica dominio.

      Quando disattivi la verifica del dominio per le chiavi dei siti della pagina di verifica, Google Cloud Armor verifica il dominio.

    10. Fai clic su Crea chiave.
    11. La chiave appena creata è elencata nella pagina Chiavi reCAPTCHA.

    gcloud

    Per creare chiavi sito WAF, utilizza il comando gcloud recaptcha key create:
       gcloud recaptcha keys create \
          --web \
          --display-name=DISPLAY_NAME  \
          --waf-feature=WAF_FEATURE \
          --waf-service=WAF_SERVICE \
          --integration-type=INTEGRATION_TYPE \
          --domains=DOMAIN_NAME
      

    Fornisci i seguenti valori:

    • DISPLAY_NAME: nome della chiave. In genere il nome di un sito.
    • WAF_FEATURE: nome della funzionalità WAF. Specifica challenge-page.
    • WAF_SERVICE: nome del fornitore di servizi WAF. Specifica CA per Google Cloud Armor.
    • INTEGRATION_TYPE: tipo di integrazione. Specifica INVISIBLE.
    • DOMAIN_NAME: domini o sottodomini dei siti web autorizzati a utilizzare la chiave. Indica più domini come elenco separato da virgole. (Facoltativo) Specifica --allow-all-domains per disabilitare la verifica del dominio.

      Quando disattivi la verifica del dominio per le chiavi dei siti della pagina di verifica, Google Cloud Armor verifica il dominio.

    REST &CMD LINE

    Per informazioni di riferimento sull'API su tipi di chiavi e tipi di integrazione, consulta le sezioni Chiave e Tipo di integrazione.

    Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: il tuo ID progetto Google Cloud
    • DISPLAY_NAME: nome visualizzato per la chiave
    • WAF_SERVICE: nome del fornitore di servizi WAF. Specifica CA per Google Cloud Armor.
    • WAF_FEATURE: nome della funzionalità WAF. Specifica challenge-page.
    • DOMAINS (solo per siti web e WAF): domini o sottodomini di siti web autorizzati a utilizzare la chiave. Indica più domini come elenco separato da virgole. (Facoltativo) Specifica --allow-all-domains per disattivare la verifica del dominio.

      Quando disattivi la verifica del dominio per le chiavi dei siti della pagina di verifica, Google Cloud Armor verifica il dominio.

    • TYPE_OF_INTEGRATION (solo per siti web e WAF): Specifica INVISIBLE.

    Metodo HTTP e URL:

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

    Corpo JSON richiesta:

    
    {
       "displayName": "DISPLAY_NAME",
        'wafSettings': "  {
            "wafService": "WAF_SERVICE",
    "wafFeature": "WAF_FEATURE"
       }
       "webSettings": {
         "allowedDomains": "DOMAINS",
         "integrationType": "TYPE_OF_INTEGRATION"
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    Curling

    Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

    curl -X POST \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

    $cred = gcloud auth application-default print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    {
        "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
      "displayName": "WAF session-token test key",
      "webSettings": {
        "allowAllDomains": true,
        "allowedDomains": [
          "localhost"
        ],
    
        "integrationType": "INVISIBLE",
    
      },
      "wafSettings": {
        "wafService": "CA",
        "wafFeature": "CHALLENGE_PAGE"
    
      }
    }
    
    

  2. Configura i criteri di sicurezza di Google Cloud Armor. Per informazioni su come utilizzare una chiave del sito di verifica reCAPTCHA con il tuo criterio di sicurezza, consulta Configurare le regole per la gestione dei bot.

Implementare i token di azione reCAPTCHA

Per generare i token di azione, è necessario che reCAPTCHA Enterprise sia in esecuzione sulle tue pagine web. Dopo che reCAPTCHA Enterprise ha generato un token azione, lo colleghi a un'intestazione predefinita della richiesta, ovunque tu debba proteggere qualsiasi azione dell'utente, ad esempio il pagamento. Per impostazione predefinita, i token di azione sono validi per 30 minuti e possono avere una durata inferiore. Pertanto, devi collegare il token azione a un'intestazione della richiesta predefinita prima che scada, in modo che Google Cloud Armor possa valutare gli attributi del token.

Per implementare un token di azione reCAPTCHA:

  1. Creare una chiave di sito token di azione WAF reCAPTCHA.

    console

    1. Nella console, vai alla pagina reCAPTCHA Enterprise.

      Vai a reCAPTCHA Enterprise

    2. Verifica che il nome del progetto venga visualizzato nel selettore di risorse nella parte superiore della pagina.

      Se non vedi il nome del tuo progetto, fai clic sul selettore di risorse, quindi seleziona il progetto.

    3. Fai clic su Crea chiave.

    4. Nel campo Nome visualizzato, inserisci un nome visualizzato per la chiave.
    5. Dal menu a discesa Scegli il tipo di piattaforma, seleziona Sito web.

      Viene visualizzata la sezione Elenco dei domini.

    6. Inserisci il nome di dominio per il tuo sito web:

      1. Nella sezione Elenco domini, fai clic su Aggiungi un dominio.

      2. Nel campo Dominio, inserisci il nome del tuo dominio.
      3. (Facoltativo) Per aggiungere un altro dominio, fai clic su Aggiungi un dominio e inserisci il nome di un altro dominio nel campo Dominio. Puoi aggiungere fino a un massimo di 250 domini.

        Per i siti web, la chiave del sito reCAPTCHA è univoca per i domini e i sottodomini specificati. Puoi specificare più di un dominio se pubblichi il tuo sito web da più domini. Se specifichi un dominio (ad esempio examplepetstore.com), non è necessario specificarne i sottodomini (ad esempio subdomain.examplepetstore.com).

    7. Espandi la sezione Web application firewall (WAF), verifica del dominio, pagine AMP e richiesta di verifica.
    8. Attiva l'opzione Web application firewall (WAF).
    9. Dal menu a discesa Funzionalità, seleziona Token di azione.

    10. (Facoltativo) Attiva Disattiva la verifica del dominio.

      La disattivazione della verifica del dominio è un rischio per la sicurezza perché non esistono limitazioni sul sito, quindi la tua chiave reCAPTCHA può essere utilizzata e utilizzata da chiunque.

    11. (Facoltativo) Attiva l'opzione Utilizza la casella di controllo.

    12. Fai clic su Crea chiave.
    13. La chiave appena creata è elencata nella pagina Chiavi reCAPTCHA.

    gcloud

    Per creare chiavi sito WAF, utilizza il comando gcloud recaptcha key create:
       gcloud recaptcha keys create \
          --web \
          --display-name=DISPLAY_NAME  \
          --waf-feature=WAF_FEATURE \
          --waf-service=WAF_SERVICE \
          --integration-type=INTEGRATION_TYPE \
          --domains=DOMAIN_NAME
      

    Fornisci i seguenti valori:

    • DISPLAY_NAME: nome della chiave. In genere il nome di un sito.
    • WAF_FEATURE: nome della funzionalità WAF. Specifica action-token.
    • WAF_SERVICE: nome del fornitore di servizi WAF. Specifica CA per Google Cloud Armor.
    • INTEGRATION_TYPE: tipo di integrazione. Specifica SCORE o CHECKBOX.
    • DOMAIN_NAME: domini o sottodomini dei siti web autorizzati a utilizzare la chiave. Indica più domini come elenco separato da virgole. (Facoltativo) Specifica --allow-all-domains per disabilitare la verifica del dominio.

      La disattivazione della verifica del dominio è un rischio per la sicurezza perché non esistono limitazioni sul sito, quindi la tua chiave reCAPTCHA può essere utilizzata e utilizzata da chiunque.

    REST &CMD LINE

    Per informazioni di riferimento sull'API su tipi di chiavi e tipi di integrazione, consulta le sezioni Chiave e Tipo di integrazione.

    Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: il tuo ID progetto Google Cloud
    • DISPLAY_NAME: nome visualizzato per la chiave
    • WAF_SERVICE: nome del fornitore di servizi WAF. Specifica CA per Google Cloud Armor.
    • WAF_FEATURE: nome della funzionalità WAF. Specifica action-token.
    • DOMAINS (solo per siti web e WAF): domini o sottodomini di siti web autorizzati a utilizzare la chiave. Indica più domini come elenco separato da virgole. (Facoltativo) Specifica --allow-all-domains per disattivare la verifica del dominio.

      La disattivazione della verifica del dominio è un rischio per la sicurezza perché non esistono limitazioni sul sito, quindi la tua chiave reCAPTCHA può essere utilizzata e utilizzata da chiunque.

    • TYPE_OF_INTEGRATION (solo per siti web e WAF): Specifica SCORE o CHECKBOX.

    Metodo HTTP e URL:

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

    Corpo JSON richiesta:

    
    {
       "displayName": "DISPLAY_NAME",
        'wafSettings': "  {
            "wafService": "WAF_SERVICE",
    "wafFeature": "WAF_FEATURE"
       }
       "webSettings": {
         "allowedDomains": "DOMAINS",
         "integrationType": "TYPE_OF_INTEGRATION"
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    Curling

    Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

    curl -X POST \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

    $cred = gcloud auth application-default print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    {
        "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
      "displayName": "WAF session-token test key",
      "webSettings": {
        "allowAllDomains": true,
        "allowedDomains": [
          "localhost"
        ],
    
       "integrationType": "SCORE",
    
      },
      "wafSettings": {
        "wafService": "CA",
        "wafFeature": "ACTION_TOKEN"
    
      }
    }
    
    

  2. Nelle tue pagine web, installa la chiave di sito Action-Token. Per istruzioni, consulta il documento che corrisponde al tipo di integrazione della chiave del sito action-token.

  3. Dopo aver ricevuto il token da reCAPTCHA Enterprise, collegalo a un'intestazione predefinita della richiesta nel seguente formato:

       X-Recaptcha-Token:value-of-your-action-token
    

    Per collegare il token a un'intestazione della richiesta predefinita, puoi utilizzare lingue quali XHR, Ajax o API Fetch.

    Il seguente script di esempio mostra come proteggere l'azione di esecuzione e collegare il token a un'intestazione di richiesta predefinita utilizzando JavaScript + XHR:

       <script src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_SITE_KEY"></script>
    
       <script>
    
        function onSuccess(action_token) {
          const xhr = new XMLHttpRequest();
          xhr.open('GET','YOUR_URL', false);
          // Attach the action-token to the predefined request header
          xhr.setRequestHeader("X-Recaptcha-Token", action_token);
          xhr.send(null);
        }
    
        function onError(reason) {
          alert('Response promise rejected: ' + reason);
        }
    
        grecaptcha.enterprise.ready(function () {
          document.getElementById("execute-button").onclick = () => {
            grecaptcha.enterprise.execute('ACTION_TOKEN_SITE_KEY', {
            }).then(onSuccess, onError);
          };
        });
       </script>
    
     ```
    
  4. Configura i criteri di sicurezza di Google Cloud Armor. Per informazioni su come utilizzare la chiave del sito del token di azione reCAPTCHA con il tuo criterio di sicurezza, vedi Configurare le regole per la gestione dei bot.

Implementare i token di sessione reCAPTCHA

Il codice JavaScript di reCAPTCHA imposta un token di sessione reCAPTCHA come cookie nel browser dell'utente finale dopo la valutazione. Il browser dell'utente finale collega il cookie e lo aggiorna finché il codice JavaScript reCAPTCHA rimane attivo.

Per fornire un token di sessione come cookie, installa una chiave di sito basata su punteggio reCAPTCHA su almeno una delle tue pagine web che soddisfano i seguenti requisiti:

  • La pagina web deve essere la pagina che l'utente finale naviga prima di quella da proteggere. Ad esempio, se vuoi proteggere la pagina di pagamento, installa la chiave di sito basata sul punteggio reCAPTCHA sulla home page o sulla pagina del prodotto.
  • La pagina web è protetta da un criterio di sicurezza di Google Cloud Armor.

Puoi utilizzare questo cookie per proteggere le successive richieste dell'utente e i caricamenti delle pagine su un dominio specifico. Per impostazione predefinita, i token di sessione sono validi per 30 minuti. Tuttavia, se l'utente rimane nella pagina in cui hai implementato il token di sessione, reCAPTCHA Enterprise aggiorna periodicamente il token per evitare che scada.

Installa i token di sessione su ogni pagina che deve essere protetta da reCAPTCHA Enterprise. Ti consigliamo di installare reCAPTCHA Enterprise su ogni pagina e di utilizzare le regole di Google Cloud Armor per applicare l'accesso a tutte le pagine, ad eccezione della prima pagina visitata dagli utenti finali.

Di seguito è riportato un token di sessione reCAPTCHA di esempio:

   recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time

Per implementare un token di sessione reCAPTCHA, segui questi passaggi:

  1. Creare una chiave di sito del token di sessione WAF reCAPTCHA.

    console

    1. Nella console, vai alla pagina reCAPTCHA Enterprise.

      Vai a reCAPTCHA Enterprise

    2. Verifica che il nome del progetto venga visualizzato nel selettore di risorse nella parte superiore della pagina.

      Se non vedi il nome del tuo progetto, fai clic sul selettore di risorse, quindi seleziona il progetto.

    3. Fai clic su Crea chiave.

    4. Nel campo Nome visualizzato, inserisci un nome visualizzato per la chiave.
    5. Dal menu a discesa Scegli il tipo di piattaforma, seleziona Sito web.

      Viene visualizzata la sezione Elenco dei domini.

    6. Inserisci il nome di dominio per il tuo sito web:

      1. Nella sezione Elenco domini, fai clic su Aggiungi un dominio.

      2. Nel campo Dominio, inserisci il nome del tuo dominio.
      3. (Facoltativo) Per aggiungere un altro dominio, fai clic su Aggiungi un dominio e inserisci il nome di un altro dominio nel campo Dominio. Puoi aggiungere fino a un massimo di 250 domini.

        Per i siti web, la chiave del sito reCAPTCHA è univoca per i domini e i sottodomini specificati. Puoi specificare più di un dominio se pubblichi il tuo sito web da più domini. Se specifichi un dominio (ad esempio examplepetstore.com), non è necessario specificarne i sottodomini (ad esempio subdomain.examplepetstore.com).

    7. Espandi la sezione Web application firewall (WAF), verifica del dominio, pagine AMP e richiesta di verifica.
    8. Attiva l'opzione Web application firewall (WAF).
    9. Dal menu a discesa Funzionalità, seleziona Token di sessione.

    10. (Facoltativo) Attiva Disattiva la verifica del dominio.

      La disattivazione della verifica del dominio è un rischio per la sicurezza perché non esistono limitazioni sul sito, quindi la tua chiave reCAPTCHA può essere utilizzata e utilizzata da chiunque.

    11. Fai clic su Crea chiave.
    12. La chiave appena creata è elencata nella pagina Chiavi reCAPTCHA.

    gcloud

    Per creare chiavi sito WAF, utilizza il comando gcloud recaptcha key create:
       gcloud recaptcha keys create \
          --web \
          --display-name=DISPLAY_NAME  \
          --waf-feature=WAF_FEATURE \
          --waf-service=WAF_SERVICE \
          --integration-type=INTEGRATION_TYPE \
          --domains=DOMAIN_NAME
      

    Fornisci i seguenti valori:

    • DISPLAY_NAME: nome della chiave. In genere il nome di un sito.
    • WAF_FEATURE: nome della funzionalità WAF. Specifica session-token.
    • WAF_SERVICE: nome del fornitore di servizi WAF. Specifica CA per Google Cloud Armor.
    • INTEGRATION_TYPE: tipo di integrazione. Specifica SCORE.
    • DOMAIN_NAME: domini o sottodomini dei siti web autorizzati a utilizzare la chiave. Indica più domini come elenco separato da virgole. (Facoltativo) Specifica --allow-all-domains per disabilitare la verifica del dominio.

      La disattivazione della verifica del dominio è un rischio per la sicurezza perché non esistono limitazioni sul sito, quindi la tua chiave reCAPTCHA può essere utilizzata e utilizzata da chiunque.

    REST &CMD LINE

    Per informazioni di riferimento sull'API su tipi di chiavi e tipi di integrazione, consulta le sezioni Chiave e Tipo di integrazione.

    Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: il tuo ID progetto Google Cloud
    • DISPLAY_NAME: nome visualizzato per la chiave
    • WAF_SERVICE: nome del fornitore di servizi WAF. Specifica CA per Google Cloud Armor.
    • WAF_FEATURE: nome della funzionalità WAF. Specifica session-token.
    • DOMAINS (solo per siti web e WAF): domini o sottodomini di siti web autorizzati a utilizzare la chiave. Indica più domini come elenco separato da virgole. (Facoltativo) Specifica --allow-all-domains per disattivare la verifica del dominio.

      La disattivazione della verifica del dominio è un rischio per la sicurezza perché non esistono limitazioni sul sito, quindi la tua chiave reCAPTCHA può essere utilizzata e utilizzata da chiunque.

    • TYPE_OF_INTEGRATION (solo per siti web e WAF): Specifica SCORE.

    Metodo HTTP e URL:

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

    Corpo JSON richiesta:

    
    {
       "displayName": "DISPLAY_NAME",
        'wafSettings': "  {
            "wafService": "WAF_SERVICE",
    "wafFeature": "WAF_FEATURE"
       }
       "webSettings": {
         "allowedDomains": "DOMAINS",
         "integrationType": "TYPE_OF_INTEGRATION"
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    Curling

    Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

    curl -X POST \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

    $cred = gcloud auth application-default print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    {
        "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
      "displayName": "WAF session-token test key",
      "webSettings": {
        "allowAllDomains": true,
        "allowedDomains": [
          "localhost"
        ],
    
       "integrationType": "SCORE",
    
      },
      "wafSettings": {
        "wafService": "CA",
        "wafFeature": "SESSION_TOKEN"
    
      }
    }
    
    

  2. Aggiungi la chiave del sito del token di sessione e waf=session al codice JavaScript di reCAPTCHA.

    Il seguente script di esempio mostra come implementare un token di sessione su una pagina web:

      <!DOCTYPE html>
      <html lang="en">
      <head>
       <meta charset="UTF-8">
       <title>reCAPTCHA WAF Session Token</title>
       <script src="https://www.google.com/recaptcha/enterprise.js?render=SESSION_TOKEN_SITE_KEY&waf=session" async defer></script>
      </head>
    </html>
    
  3. Configura i criteri di sicurezza di Google Cloud Armor. Per informazioni su come utilizzare la chiave del sito del token di sessione reCAPTCHA con il tuo criterio di sicurezza, consulta Configurare le regole per la gestione dei bot.

Esempi di utilizzo di più funzionalità in una singola applicazione

Puoi utilizzare una o più funzionalità reCAPTCHA Enterprise per WAF in una singola applicazione.

Esempio 1: utilizzo dei token di sessione e della pagina di verifica reCAPTCHA

Puoi aggiungere un token di sessione reCAPTCHA alle pagine a cui un utente potrebbe accedere, in modo che il cookie venga aggiornato periodicamente, ad esempio una pagina di accesso. Configura la regola del criterio di sicurezza di Google Cloud Armor per reindirizzare la richiesta a una pagina di verifica reCAPTCHA quando il punteggio è basso.

L'illustrazione seguente mostra un flusso di lavoro che utilizza i token di sessione reCAPTCHA e le pagine di verifica reCAPTCHA:

Esempio 2: utilizzo dei token di azione reCAPTCHA e della pagina di verifica reCAPTCHA

Puoi aggiungere un token di azione reCAPTCHA per proteggere un'azione utente, ad esempio checkout. Configura la regola del criterio di sicurezza di Google Cloud Armor per reindirizzare la richiesta a una pagina di test reCAPTCHA in una delle seguenti condizioni:

  • Il punteggio è basso.
  • L'attributo action_name del token di azione non corrisponde all'azione dell'utente protetta.

L'illustrazione seguente mostra un flusso di lavoro che utilizza token di azione reCAPTCHA e funzionalità della pagina di verifica reCAPTCHA:

Il seguente script di esempio mostra come utilizzare un token di azione reCAPTCHA e reindirizzare a una pagina di verifica reCAPTCHA con il token di azione allegato come intestazione:

   <script src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_SITE_KEY"></script>
    <script>
     function onSuccess(token) {
       const xhr = new XMLHttpRequest();
       xhr.open('GET','http://www.abc.com/checkout', false);
       xhr.setRequestHeader("X-Recaptcha-Token", token);
       xhr.onreadystatechange = function() {
         // Make sure that the request is finished and response is ready with 200
         if (this.readyState == 4 && this.status == 200) {
           // Display the response, it could be a reCAPTCHA challenge
           // page based on your Google Cloud Armor security rule settings.
            document.open();
            document.write(xhr.responseText);
            document.close();

         }
       };
       xhr.send(null);
     }

     grecaptcha.enterprise.ready(function () {
       document.getElementById("execute-button").onclick = () => {
         grecaptcha.enterprise.execute('ACTION_TOKEN_SITE_KEY', {
         }).then(onSuccess, onError);
       };
     });
    </script>

Passaggi successivi