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.
Enable the reCAPTCHA Enterprise API.
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.
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
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.