Questo documento mostra come configurare protezione espressa reCAPTCHA WAF (reCAPTCHA WAF express) su un server di applicazioni senza integrare gli SDK JavaScript (web) o nativi per dispositivi mobili (iOS o Android) di reCAPTCHA.
reCAPTCHA WAF express utilizza solo indicatori di backend per generare un punteggio di rischio reCAPTCHA. Puoi utilizzare questo punteggio di rischio per decidere se pubblicare 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 il tuo 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 seguito.
Crea chiave express reCAPTCHA WAF
Per implementare protezione espressa reCAPTCHA WAF, crea una chiave express 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 chiavi reCAPTCHA, utilizza il comando gcloud recaptcha keys create.
Prima di utilizzare uno qualsiasi dei dati di comando riportati 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: i domini o i sottodomini di siti web a cui è consentito utilizzare la chiave.
Specifica
--allow-all-domains
. - WAF_FEATURE: nome della funzionalità WAF.
Specifica
express
. - WAF_SERVICE: nome del fornitore 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 sulle 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: i domini o i sottodomini di siti web a cui è consentito utilizzare la chiave.
Specifica
--allow-all-domains
. - WAF_FEATURE: nome della funzionalità WAF.
Specifica
express
. - WAF_SERVICE: nome del fornitore 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:
arricciatura
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 tua chiave express per utilizzarla in seguito.
Crea una valutazione
Per effettuare una richiesta dal tuo server di applicazioni a reCAPTCHA Enterprise, 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 express reCAPTCHA WAF che hai creato per l'applicazione.
- USER_IP_ADDRESS: l'indirizzo IP nella richiesta dal dispositivo dell'utente relativa a questo evento.
- HEADER_INFO: facoltativo. Le intestazioni HTTP inviate dal client al server delle applicazioni.
- JA3_FINGERPRINT: facoltativo. JA3 è un'impronta MD5 di determinati campi del pacchetto hello del client TLS. Per ulteriori informazioni, vedi 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 proveniente dal dispositivo dell'utente relativa a questo evento.
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", } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
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 }, "riskAnalysis": { "score": 0.7, "reasons": [] } }
Passaggi successivi
- Scopri come utilizzare protezione espressa reCAPTCHA WAF con Fastly.
- Scopri come interpretare i punteggi di rischio.