Questo documento mostra come integrare reCAPTCHA per WAF con Fastly.
Per completare l'integrazione, devi implementare una o più funzionalità di reCAPTCHA per WAF, creare criteri firewall reCAPTCHA e integrarli con il servizio di computing Fastly.
Prima di iniziare
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Registra l'ID progetto Google Cloud per utilizzarlo in un secondo momento.Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
Attiva l'API reCAPTCHA Enterprise.
Crea una chiave API per l'autenticazione:
Nella console Google Cloud, vai alla pagina Credenziali.
Fai clic su
Crea credenziali, quindi seleziona Chiave API.Registra la chiave API per utilizzarla in un secondo momento.
Pianifica l'implementazione delle funzionalità di reCAPTCHA per WAF al fine di proteggere il tuo sito web.
- Scegli una o più funzionalità WAF che meglio si adattano al tuo caso d'uso.
- Identifica le pagine da proteggere e il tipo di funzionalità WAF che vuoi implementare su queste pagine.
- Identifica le condizioni per consentire o bloccare l'accesso.
- Comprendi i componenti dei criteri firewall reCAPTCHA e i relativi attributi che consentono di creare criteri firewall reCAPTCHA. Per alcuni esempi, consulta Esempi di criteri firewall reCAPTCHA.
Scarica il pacchetto reCAPTCHA per Fastly
recaptcha_fastly_client_0.1.0.tar.gz
.Crea un account Fastly con le funzionalità di Compute@Edge.
Implementa le funzionalità di reCAPTCHA per WAF
In base ai tuoi requisiti, puoi utilizzare una o più funzionalità di reCAPTCHA per WAF in un'unica applicazione.
Se vuoi utilizzare più di una funzionalità, devi creare una chiave reCAPTCHA per ognuna di queste funzionalità e utilizzarle nella tua applicazione. Ad esempio, se vuoi utilizzare i token di azione reCAPTCHA e la pagina di verifica reCAPTCHA, devi creare una chiave per token di azione e una chiave della pagina di verifica e utilizzarli nella tua applicazione.
token di azione
Per generare token di azione, devi eseguire reCAPTCHA sulle tue pagine web.
Dopo che reCAPTCHA ha generato un token di azione, devi collegarlo a un'intestazione della richiesta predefinita ovunque sia necessario proteggere qualsiasi azione dell'utente, ad esempio checkout
. Per impostazione predefinita, i token di azione sono validi per 30 minuti, ma possono variare a seconda del traffico.
Devi collegare il token di azione a un'intestazione della richiesta predefinita prima della scadenza del token, in modo che Fastly possa valutare gli attributi del token.
Per implementare un token di azione reCAPTCHA, segui questi passaggi:
Crea una chiave per il token di azione per il tuo sito web.
gcloud
Per creare le chiavi reCAPTCHA, utilizza il comando gcloud recaptcha keys create.
Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:
- DISPLAY_NAME: nome della chiave. In genere il nome di un sito.
- INTEGRATION_TYPE: tipo di integrazione.
Specifica
score
ocheckbox
. - DOMAIN_NAME: domini o sottodomini di siti web autorizzati a utilizzare la chiave.
Specifica più domini come elenco separato da virgole. (Facoltativo) Specifica
--allow-all-domains
per disabilitare la verifica del dominio.La disattivazione della verifica del dominio rappresenta un rischio per la sicurezza perché il sito non presenta limitazioni, perciò la chiave reCAPTCHA è accessibile e utilizzata da chiunque.
- WAF_FEATURE: nome della funzionalità WAF.
Specifica
action-token
. - WAF_SERVICE: nome del provider di servizi WAF.
Specifica
fastly
per Fastly.
Esegui il comando gcloud recaptcha keys create:
Linux, macOS o Cloud Shell
gcloud recaptcha keys create \ --web \ --display-name=DISPLAY_NAME \ --integration-type=INTEGRATION_TYPE \ --domains=DOMAIN_NAME \ --waf-feature=WAF_FEATURE \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --web ` --display-name=DISPLAY_NAME ` --integration-type=INTEGRATION_TYPE ` --domains=DOMAIN_NAME ` --waf-feature=WAF_FEATURE ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --web ^ --display-name=DISPLAY_NAME ^ --integration-type=INTEGRATION_TYPE ^ --domains=DOMAIN_NAME ^ --waf-feature=WAF_FEATURE ^ --waf-service=WAF_SERVICE
La risposta contiene la chiave reCAPTCHA appena creata.
REST
Per informazioni di riferimento delle API sui tipi di chiave e di integrazione, consulta Chiave e Tipo di integrazione.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- DISPLAY_NAME: nome della chiave. In genere il nome di un sito.
- INTEGRATION_TYPE: tipo di integrazione.
Specifica
score
ocheckbox
. - DOMAIN_NAME: domini o sottodomini di siti web autorizzati a utilizzare la chiave.
Specifica più domini come elenco separato da virgole. (Facoltativo) Specifica
--allow-all-domains
per disabilitare la verifica del dominio.La disattivazione della verifica del dominio rappresenta un rischio per la sicurezza perché il sito non presenta limitazioni, perciò la chiave reCAPTCHA è accessibile e utilizzata da chiunque.
- WAF_FEATURE: nome della funzionalità WAF.
Specifica
action-token
. - WAF_SERVICE: nome del provider di servizi WAF.
Specifica
fastly
per Fastly.
Metodo HTTP e URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Corpo JSON della 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:
curl
Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando:curl -X POST \
-H "Authorization: Bearer $(gcloud auth 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 questo comando:$cred = gcloud auth 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 ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "SCORE", }, "wafSettings": { "wafService": "fastly", "wafFeature": "ACTION_TOKEN" } }
Registra la chiave del token di azione per utilizzarla in seguito.
-
Integra reCAPTCHA JavaScript nelle tue pagine web con la chiave per token di azione che hai creato. Per istruzioni, consulta il documento corrispondente al tipo di integrazione della chiave per token di azione.
- Per il tipo di integrazione
SCORE
, consulta Integrare le chiavi basate sul punteggio con il frontend. - Per il tipo di integrazione
CHECKBOX
, consulta la sezione Visualizzare il widget reCAPTCHA sul frontend.
- Per il tipo di integrazione
-
Dopo aver ricevuto il token da reCAPTCHA, collegalo a un'intestazione della richiesta predefinita nel seguente formato:
X-Recaptcha-Token: value-of-your-action-token
Per collegare il token a un'intestazione della richiesta predefinita, puoi utilizzare linguaggi come XHR, Ajax o Fetch.
Lo script di esempio seguente mostra come proteggere l'azione
execute
e collegare il token a un'intestazione della richiesta predefinita utilizzando JavaScript + XHR:<script> src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_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_KEY', { }).then(onSuccess, onError); }; }); } </script>
token di sessione
Il codice JavaScript reCAPTCHA imposta un token di sessione reCAPTCHA come cookie sul 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, installane una su almeno una delle pagine web consultata dall'utente finale prima della pagina da proteggere. Ad esempio, se vuoi proteggere la pagina di pagamento, installa una chiave token di sessione nella home page o nella pagina del prodotto.
Per scoprire come installare le chiavi per token di sessione sulle tue pagine web, consulta Integrare le chiavi basate sul punteggio con il frontend.
Puoi utilizzare questo cookie per proteggere le richieste successive dell'utente finale 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 finale rimane sulla pagina in cui hai implementato il token di sessione, reCAPTCHA aggiorna periodicamente il token di sessione per evitare che scada.
Installa i token di sessione su ogni pagina che deve essere protetta da reCAPTCHA. Ti consigliamo di proteggere ogni pagina con reCAPTCHA 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 esempio di token di sessione reCAPTCHA:recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time
Per implementare un token di sessione reCAPTCHA, segui questi passaggi:
- Crea una chiave per token di sessione per il tuo sito web.
gcloud
Per creare le chiavi reCAPTCHA, utilizza il comando gcloud recaptcha keys create.
Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:
- DISPLAY_NAME: nome della chiave. In genere il nome di un sito.
- INTEGRATION_TYPE: tipo di integrazione.
Specifica
score
. - DOMAIN_NAME: domini o sottodomini di siti web autorizzati a utilizzare la chiave.
Specifica più domini come elenco separato da virgole. (Facoltativo) Specifica
--allow-all-domains
per disabilitare la verifica del dominio.La disattivazione della verifica del dominio rappresenta un rischio per la sicurezza perché il sito non presenta limitazioni, perciò la chiave reCAPTCHA è accessibile e utilizzata da chiunque.
- WAF_FEATURE: nome della funzionalità WAF.
Specifica
session-token
. - WAF_SERVICE: nome del provider di servizi WAF.
Specifica
fastly
per Fastly.
Esegui il comando gcloud recaptcha keys create:
Linux, macOS o Cloud Shell
gcloud recaptcha keys create \ --web \ --display-name=DISPLAY_NAME \ --integration-type=INTEGRATION_TYPE \ --domains=DOMAIN_NAME \ --waf-feature=WAF_FEATURE \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --web ` --display-name=DISPLAY_NAME ` --integration-type=INTEGRATION_TYPE ` --domains=DOMAIN_NAME ` --waf-feature=WAF_FEATURE ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --web ^ --display-name=DISPLAY_NAME ^ --integration-type=INTEGRATION_TYPE ^ --domains=DOMAIN_NAME ^ --waf-feature=WAF_FEATURE ^ --waf-service=WAF_SERVICE
La risposta contiene la chiave reCAPTCHA appena creata.
REST
Per informazioni di riferimento delle API sui tipi di chiave e di integrazione, consulta Chiave e Tipo di integrazione.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- DISPLAY_NAME: nome della chiave. In genere il nome di un sito.
- INTEGRATION_TYPE: tipo di integrazione.
Specifica
score
. - DOMAIN_NAME: domini o sottodomini di siti web autorizzati a utilizzare la chiave.
Specifica più domini come elenco separato da virgole. (Facoltativo) Specifica
--allow-all-domains
per disabilitare la verifica del dominio.La disattivazione della verifica del dominio rappresenta un rischio per la sicurezza perché il sito non presenta limitazioni, perciò la chiave reCAPTCHA è accessibile e utilizzata da chiunque.
- WAF_FEATURE: nome della funzionalità WAF.
Specifica
session-token
. - WAF_SERVICE: nome del provider di servizi WAF.
Specifica
fastly
per Fastly.
Metodo HTTP e URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Corpo JSON della 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:
curl
Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando:curl -X POST \
-H "Authorization: Bearer $(gcloud auth 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 questo comando:$cred = gcloud auth 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 ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "SCORE", }, "wafSettings": { "wafService": "fastly", "wafFeature": "SESSION_TOKEN" } }
Registra la chiave del token di sessione per utilizzarla in un secondo momento.
-
Aggiungi la chiave token di sessione e
waf=session
al codice JavaScript reCAPTCHA.Lo script di esempio seguente 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_KEY&waf=session" async defer></script> <body></body> </head> </html>
challenge-page
When you implement a reCAPTCHA challenge page, reCAPTCHA redirects to an interstitial page where it determines if it's necessary to show a CAPTCHA challenge to a user. Therefore, CAPTCHA challenges might not be visible to all users.
To implement a reCAPTCHA challenge page, do the following:
- Create a challenge-page key for your website.
gcloud
To create reCAPTCHA keys, use the gcloud recaptcha keys create command.
Before using any of the command data below, make the following replacements:
- DISPLAY_NAME: Name for the key. Typically a site name.
- INTEGRATION_TYPE: Type of integration.
Specify
invisible
. - DOMAIN_NAME: Domains or subdomains of websites allowed to use
the key.
Specify
--allow-all-domains
. - WAF_FEATURE: Name of the WAF feature.
Specify
challenge-page
. - WAF_SERVICE: Name of the
WAF service provider.
Specify
fastly
for Fastly.
Execute the gcloud recaptcha keys create command:
Linux, macOS, or Cloud Shell
gcloud recaptcha keys create \ --web \ --display-name=DISPLAY_NAME \ --integration-type=INTEGRATION_TYPE \ --domains=DOMAIN_NAME \ --waf-feature=WAF_FEATURE \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --web ` --display-name=DISPLAY_NAME ` --integration-type=INTEGRATION_TYPE ` --domains=DOMAIN_NAME ` --waf-feature=WAF_FEATURE ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --web ^ --display-name=DISPLAY_NAME ^ --integration-type=INTEGRATION_TYPE ^ --domains=DOMAIN_NAME ^ --waf-feature=WAF_FEATURE ^ --waf-service=WAF_SERVICE
La risposta contiene la chiave reCAPTCHA appena creata.
REST
Per informazioni di riferimento delle API sui tipi di chiave e di integrazione, consulta Chiave e Tipo di integrazione.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- DISPLAY_NAME: nome della chiave. In genere il nome di un sito.
- INTEGRATION_TYPE: tipo di integrazione.
Specifica
invisible
. - DOMAIN_NAME: domini o sottodomini di siti web autorizzati a utilizzare la chiave.
Specifica
--allow-all-domains
. - WAF_FEATURE: nome della funzionalità WAF.
Specifica
challenge-page
. - WAF_SERVICE: nome del provider di servizi WAF.
Specifica
fastly
per Fastly.
Metodo HTTP e URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Corpo JSON della 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:
curl
Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando:curl -X POST \
-H "Authorization: Bearer $(gcloud auth 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 questo comando:$cred = gcloud auth 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 ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "INVISIBLE", }, "wafSettings": { "wafService": "fastly", "wafFeature": "CHALLENGE_PAGE" } }
Registra la chiave della pagina della sfida per utilizzarla in seguito.
- Per reindirizzare gli utenti alla pagina di verifica reCAPTCHA e ricevere un token reCAPTCHA, crea un criterio firewall con l'azione
redirect
sulle pagine protette. -
Nella console Google Cloud, attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.
-
gcloud
Per creare le chiavi reCAPTCHA, utilizza il comando gcloud recaptcha keys create.
Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:
- DISPLAY_NAME: nome della chiave. In genere il nome di un sito.
- INTEGRATION_TYPE: tipo di integrazione.
Specifica
score
. - DOMAIN_NAME: domini o sottodomini di siti web autorizzati a utilizzare la chiave.
Specifica
--allow-all-domains
. - WAF_FEATURE: nome della funzionalità WAF.
Specifica
express
. - WAF_SERVICE: nome del provider di servizi WAF.
Esegui il comando gcloud recaptcha keys create:
Linux, macOS o Cloud Shell
gcloud recaptcha keys create \ --web \ --display-name=DISPLAY_NAME \ --integration-type=INTEGRATION_TYPE \ --domains=DOMAIN_NAME \ --waf-feature=WAF_FEATURE \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --web ` --display-name=DISPLAY_NAME ` --integration-type=INTEGRATION_TYPE ` --domains=DOMAIN_NAME ` --waf-feature=WAF_FEATURE ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --web ^ --display-name=DISPLAY_NAME ^ --integration-type=INTEGRATION_TYPE ^ --domains=DOMAIN_NAME ^ --waf-feature=WAF_FEATURE ^ --waf-service=WAF_SERVICE
La risposta contiene la chiave reCAPTCHA appena creata.
REST
Per informazioni di riferimento delle API sui tipi di chiave e di integrazione, consulta Chiave e Tipo di integrazione.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- DISPLAY_NAME: nome della chiave. In genere il nome di un sito.
- INTEGRATION_TYPE: tipo di integrazione.
Specifica
score
. - DOMAIN_NAME: domini o sottodomini di siti web autorizzati a utilizzare la chiave.
Specifica
--allow-all-domains
. - WAF_FEATURE: nome della funzionalità WAF.
Specifica
express
. - WAF_SERVICE: nome del provider di servizi WAF.
Metodo HTTP e URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Corpo JSON della 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:
curl
Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando:curl -X POST \
-H "Authorization: Bearer $(gcloud auth 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 questo comando:$cred = gcloud auth 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 ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "SCORE", }, "wafSettings": { "wafService": "fastly", "wafFeature": "EXPRESS" } }
Registra la chiave express per utilizzarla in seguito.
- In base alle funzionalità che hai scelto, procedi nel seguente modo:
- Identifica il percorso da proteggere.
- Identifica le condizioni per consentire, reindirizzare o bloccare l'accesso.
- Assegna una priorità alle regole.
- Scopri i componenti dei criteri firewall e i relativi attributi.
-
Nella console Google Cloud, attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.
- Per eseguire l'override di gcloud CLI e accedere alla versione di anteprima pubblica dell'API reCAPTCHA, esegui questo comando:
gcloud config set api_endpoint_overrides/recaptchaenterprise https://public-preview-recaptchaenterprise.googleapis.com/
- Per creare criteri firewall reCAPTCHA, utilizza il comando gcloud recaptcha firewall-policies create:
Nel criterio firewall reCAPTCHA, aggiungi le regole in base alla priorità prevista. Devi prima aggiungere una regola con la priorità più alta. Per una richiesta in entrata, quando una condizione del criterio corrisponde al percorso specificato, il fornitore di servizi WAF implementa l'azione definita e le regole successive non vengono valutate. La regola predefinita è consentire l'accesso.
gcloud recaptcha firewall-policies create \ --actions=ACTION \ --condition=CONDITION \ --description=DESCRIPTION \ --path=PATH
Fornisci i seguenti valori:
- ACTION: le azioni che il fornitore di servizi WAF deve eseguire per la richiesta in entrata. Può contenere al massimo un'azione del terminale, ovvero un'azione che forza una risposta.
Specifica una delle seguenti azioni:
allow
: consente l'accesso alla pagina richiesta. Questa è un'azione del terminale.block
: nega l'accesso alla pagina richiesta. Questa è un'azione del terminale.redirect
: reindirizza la richiesta utente in arrivo alla pagina di verifica reCAPTCHA. Questa è un'azione del terminale.substitute
: mostra una pagina diversa da quella richiesta per la richiesta fraudolenta di un utente. Questa è un'azione del terminale.set_header
: consente di impostare un'intestazione personalizzata e consente alla richiesta utente in entrata di continuare nel backend. Il backend quindi può attivare una protezione personalizzata. Questa azione non è terminata.
- CONDITION: un'espressione condizionale CEL (Common Expression Language) che specifica se il criterio firewall reCAPTCHA si applica a una richiesta utente in arrivo. Se questa condizione restituisce true e il percorso richiesto corrisponde al pattern del percorso, le azioni associate vengono eseguite dal fornitore di servizi WAF. Al momento della creazione, viene controllata la correttezza della sintassi CEL della stringa della condizione. Per ulteriori informazioni sulla definizione della lingua, consulta la pagina Definizione della lingua CEL.
- DESCRIPTION: una descrizione di ciò che il criterio firewall reCAPTCHA mira a ottenere. La descrizione deve contenere al massimo 256 caratteri UTF-8.
- PATH: il percorso a cui si applica il criterio firewall reCAPTCHA. Deve essere specificato come pattern glob. Per ulteriori informazioni sul glob, consulta la pagina manuale.
Dopo aver eseguito correttamente il comando, viene visualizzato un output simile al seguente:
Created [100].
L'esempio seguente crea un criterio firewall reCAPTCHA per bloccare il targeting del traffico per "/example/page.html" quando il punteggio è inferiore a 0,1.
gcloud recaptcha firewall-policies create \ --description="example policy" \ --path="/example/page.html" \ --condition="recaptcha.score < 0.1" \ --actions="block"
- ACTION: le azioni che il fornitore di servizi WAF deve eseguire per la richiesta in entrata. Può contenere al massimo un'azione del terminale, ovvero un'azione che forza una risposta.
Specifica una delle seguenti azioni:
- Il nome del tuo dominio
- Pacchetto reCAPTCHA per FASTLY in formato zip
- Nome origine per il tuo server di backend
- Nome origine del server di backend reCAPTCHA:
Recaptcha Enterprise
- Nome origine del server di backend di Google:
Google
- La chiave API che hai creato per l'autenticazione
- L'ID del tuo progetto Google Cloud
- Le chiavi reCAPTCHA che hai creato per le caratteristiche WAF
- Accedi a Fastly.
Per creare un servizio di computing, segui le istruzioni in Creazione di un nuovo servizio di computing.
Quando crei un servizio di computing, segui questi passaggi:
Per creare un'origine per il server di backend reCAPTCHA, specifica i seguenti valori:
- Nome dell'origine = Recaptcha Enterprise
- Indirizzo IP (o nome host) del server di origine = public-preview-recaptchaenterprise.googleapis.com
Per creare un'origine per il server di backend di Google, specifica i seguenti valori:
- Nome della tua origine = Google
- Indirizzo IP (o nome host) del server di origine = www.google.com:443
Per creare un'origine per il tuo server di backend, specifica i seguenti valori:
- Nome dell'origine = qualsiasi nome significativo per il server di backend.
- Indirizzo IP (o nome host) del server di origine = nome host del server di backend.
Carica il pacchetto reCAPTCHA per Fastly
recaptcha_fastly_client_0.1.0.tar.gz
.Usa
recaptcha
come nome del dizionario e aggiungi le seguenti informazioni sotto forma di coppie chiave-valore nel dizionario:Chiave Valore customer_backend_name Il nome che hai assegnato durante la creazione di un'origine per il tuo server di backend. recaptcha_backend_name reCAPTCHA Enterprise google_backend_name Google cloud_api_key La chiave API che hai creato per l'autenticazione. cloud_project_number L'ID del tuo progetto Google Cloud. action_site_key Chiave token di azione reCAPTCHA WAF. Questa chiave è obbligatoria se utilizzi token di azione per proteggere le tue pagine. session_site_key Chiave token di sessione reCAPTCHA WAF. Questa chiave è obbligatoria se utilizzi token di sessione per proteggere le tue pagine. challengepage_site_key Chiave della pagina di verifica reCAPTCHA WAF. Questa chiave è obbligatoria se utilizzi la pagina di verifica reCAPTCHA per proteggere le tue pagine. express_site_key Chiave espressa reCAPTCHA WAF. Questa chiave è obbligatoria se utilizzi il servizio reCAPTCHA WAF express per proteggere le tue pagine.
espresso
Per implementare protezione espressa reCAPTCHA WAF, crea una chiave espressa.
Crea criteri firewall reCAPTCHA
Devi creare un criterio firewall che specifichi le regole per ogni pagina che vuoi proteggere sul tuo sito web. Puoi creare criteri firewall con una o più funzionalità di reCAPTCHA per WAF.
Nel criterio firewall reCAPTCHA, aggiungi le regole nell'ordine di priorità previsto. La prima regola è l'ordine più alto. Puoi anche riordinare la priorità utilizzando ReorderFirewallPoliciesRequest
.
Per una richiesta in entrata, quando una condizione del criterio corrisponde a un percorso specificato, il fornitore di servizi WAF implementa l'azione definita e le regole successive non vengono valutate.
Integrazione con il servizio di computing Fastly
Per utilizzare i criteri firewall reCAPTCHA, devi configurare un servizio di computing Fastly per intercettare ed elaborare le richieste.
Puoi creare e configurare un nuovo servizio di computing o integrare i criteri firewall reCAPTCHA con un servizio Fastly esistente tramite il collegamento. Se vuoi utilizzare il concatenamento, il servizio reCAPTCHA deve essere il servizio Fastly più lontano o un altro proxy per il corretto rilevamento IP.
Per creare un servizio di computing, devi disporre delle seguenti informazioni:
Per configurare un servizio Fastly con i criteri firewall reCAPTCHA, segui questi passaggi:
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-06-28 UTC.