Questo documento mostra come configurare protezione espressa reCAPTCHA WAF (WAF express reCAPTCHA) su un server di applicazioni senza integrare gli SDK JavaScript reCAPTCHA (web) o nativi per dispositivi mobili (iOS o Android).
reCAPTCHA WAF express utilizza solo indicatori di backend per generare un punteggio di rischio reCAPTCHA. Puoi utilizzare questo punteggio di rischio per decidere se inviare la richiesta, reindirizzare a una pagina di verifica o registrarla per un'analisi successiva.
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.
Crea chiave espressa reCAPTCHA WAF
Per implementare protezione espressa reCAPTCHA WAF, crea una chiave espressa reCAPTCHA WAF.
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": "", "wafFeature": "EXPRESS" } }
Registra la chiave express per utilizzarla in seguito.
Crea una valutazione
Per effettuare una richiesta a reCAPTCHA dal tuo server delle applicazioni, crea una valutazione utilizzando il metodo projects.assessments.create
.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- API_KEY: la chiave API che hai creato per l'autenticazione.
- EXPRESS_KEY: chiave espressa reCAPTCHA WAF che hai creato per la tua applicazione.
- USER_IP_ADDRESS: l'indirizzo IP nella richiesta da parte del dispositivo dell'utente relativa a questo evento.
- HEADER_INFO: facoltativo. Le intestazioni HTTP che il client ha inviato al server delle applicazioni.
- JA3_FINGERPRINT: facoltativo. JA3 è un'impronta MD5 di alcuni campi del pacchetto hello del client TLS. Per ulteriori informazioni, consulta JA3 - Un metodo per la profilazione dei client SSL/TLS.
- URI_NAME: facoltativo. L'URI a cui l'utente accede.
- USER_AGENT: facoltativo. Lo user agent presente nella richiesta dal dispositivo dell'utente relativa a questo evento.
- ACCOUNT_ID: facoltativo. Un identificatore univoco e permanente dell'account dell'utente, ad esempio il nome di un account con hash.
Metodo HTTP e URL:
POST https://public-preview-recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY
Corpo JSON della richiesta:
{ "event": { "siteKey": "EXPRESS_KEY", "express": true, "userIpAddress": "USER_IP_ADDRESS", "headers": ["HEADER_INFO"], "ja3": "JA3_FINGERPRINT", "requestedUri": "URI_NAME", "userAgent": "USER_AGENT", "user_info": { "account_id": "ACCOUNT_ID" } } }
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 "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://public-preview-recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://public-preview-recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/123456789/assessments/abcdef1234000000", "event": { "token": "", "siteKey": "6L...", "userAgent": "Mozilla/5.0 (X11; CrOS x86_64 13816.55.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.86 Safari/537.36", "userIpAddress": "1.2.3.4", "express": true, "requestedUri": "https://example.com/", "firewallPolicyEvaluation": false, "user_info": { "account_id": "123456789" } }, "riskAnalysis": { "score": 0.7, "reasons": [] } }
Passaggi successivi
- Scopri come utilizzare protezione espressa reCAPTCHA WAF con Fastly.
- Scopri come interpretare i punteggi di rischio.