Questo documento descrive come installare e integrare una chiave universale nelle tue pagine web.
Prima di iniziare
Installa le chiavi universali sul tuo sito web
Per installare la chiave universale e proteggere le tue pagine web, puoi utilizzare la configurazione AutoExecute, l'installazione manuale di JavaScript o entrambi i metodi insieme su endpoint diversi utilizzando la stessa chiave universale:
- Configurazione AutoExecute (consigliata): intercetta automaticamente le richieste di rete asincrone ai percorsi URL configurati e allega il token reCAPTCHA all'intestazione della richiesta.
- Installazione manuale: utilizza chiamate
grecaptcha.enterprise.execute()manuali o attributi dei pulsanti HTML. Puoi utilizzare questo metodo da solo o insieme ad AutoExecute per le richieste di rete non supportate da AutoExecute, per le richieste che richiedono il posizionamento di token personalizzati nel payload o durante le migrazioni incrementali ad AutoExecute.
A seconda del tuo approccio di integrazione, scegli l'opzione appropriata:
Configurazione di AutoExecute
AutoExecute può semplificare l'integrazione di JavaScript nel frontend intercettando le richieste di rete sulle tue pagine web ed eliminando le chiamate grecaptcha.enterprise.execute() manuali per ogni azione del frontend.
- AutoExecute intercetta solo le richieste di rete asincrone avviate con l'API Fetch o XMLHttpRequest, incluse le richieste di framework come AJAX che utilizzano queste API.
- AutoExecute non è supportato per le risorse che vengono caricate automaticamente al momento del caricamento della pagina. Applica invece AutoExecute alle richieste di rete attivate da azioni dell'utente sulla pagina, ad esempio un pulsante di accesso.
- Per evitare che i test di Fraud Defense causino timeout di rete, applica i timeout direttamente alle richieste. Utilizza
AbortSignal.timeout(n)per l'API Fetch e la proprietàXMLHttpRequest.timeoutper XMLHttpRequest.
Aggiungi il tag di script alle tue pagine web
Per caricare Fraud Defense sulla tua pagina web, aggiungi l'API JavaScript con la tua chiave universale all'interno dell'elemento <head></head> della tua pagina web:
<head>
<script src="https://www.google.com/recaptcha/enterprise.js?render=KEY_ID"></script>
...
</head>
Per impostazione predefinita, Fraud Defense utilizza la lingua del browser. Se vuoi specificare una lingua diversa, utilizza l'attributo hl=LANG nello script. Ad esempio, per utilizzare il francese, specifica quanto segue:
<script src="https://www.google.com/recaptcha/enterprise.js?render=KEY_ID&hl=fr"></script>
Per scoprire le lingue supportate, consulta i codici lingua per Fraud Defense.
Configura gli endpoint protetti
Lo script Fraud Defense si integra automaticamente con le azioni di rete definite nella configurazione della policy della chiave universale.
Questa sezione definisce una mappatura dei percorsi dell'URL (path) ai nomi delle azioni (action).
Se lo script di Fraud Defense rileva una richiesta di rete asincrona a un percorso mappato, intercetta la richiesta, attiva una valutazione del rischio e, potenzialmente, mostra una verifica CAPTCHA all'utente prima che la richiesta originale continui. Il token di risposta generato viene allegato automaticamente all'intestazione X-Recaptcha-Token nella richiesta.
gcloud
Per esaminare la configurazione della policy attuale per la chiave universale, utilizza il comando gcloud alpha recaptcha policies describe:
gcloud alpha recaptcha policies describe --key=KEY_ID
Per aggiornare la configurazione della policy con gli endpoint protetti, crea un file YAML (ad esempio POLICY.yaml) che definisca i percorsi e le azioni protetti:
client_settings:
allowedDomains:
- example.com
protected_endpoint_group:
protected_endpoints:
- path: "/login_api"
action: login
- path: "/register_api"
action: register
- path: "/cart_api/add/*"
action: add_to_cart
Aggiorna la configurazione della chiave con il file YAML utilizzando il comando gcloud alpha recaptcha policies update:
gcloud alpha recaptcha policies update \
--key=KEY_ID \
--policy=POLICY.yaml
API REST
Per aggiornare la configurazione della policy in modo da definire gli endpoint protetti utilizzando l'API REST, utilizza il metodo projects.keys.updatePolicy.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto Google Cloud
- KEY_ID: l'ID della chiave universale
Metodo HTTP e URL:
PATCH https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys/KEY_ID/policy?updateMask=clientSettings.protectedEndpointGroup
Corpo JSON della richiesta:
{
"clientSettings": {
"protectedEndpointGroup": {
"protectedEndpoints": [
{
"path": "/login_api",
"action": "login"
},
{
"path": "/register_api",
"action": "register"
},
{
"path": "/cart_api/add/*",
"action": "add_to_cart"
}
]
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Se l'operazione ha esito positivo, la richiesta restituisce la configurazione della policy aggiornata.Puoi configurare fino a 25 endpoint protetti per chiave universale. Ogni endpoint deve soddisfare i seguenti requisiti:
action: il nome dell'azione deve contenere da 1 a 100 caratteri e utilizzare solo lettere, numeri, barre (/) e trattini bassi (_).path(sensibile alle maiuscole): il percorso deve soddisfare i seguenti criteri:- Essere univoco, iniziare con
/e contenere da 1 a 200 caratteri senza barre consecutive (//). - Includi almeno un segmento non jolly (ad esempio, non può essere
/,/*,/**o/*/). - I caratteri jolly devono occupare segmenti completi:
*corrisponde a un singolo segmento (ad esempio,/api/*/logino/api/*sono validi;/api/login*non è valido) e**corrisponde a più segmenti solo come segmento finale (ad esempio,/api/**è valido;/api/**/loginnon è valido).
- Essere univoco, iniziare con
- Richieste di terze parti: se gli strumenti di terze parti in esecuzione sulla tua pagina (come script di analisi o di partner) inviano richieste a percorsi che corrispondono ai tuoi endpoint protetti (ad esempio,
https://analytics.example.net/logincorrispondente a/login), AutoExecute le intercetterà. Ciò può causare latenza di rete aggiuntiva, metriche distorte o test CAPTCHA imprevisti. Per evitare conflitti, assicurati che i percorsi protetti siano distintivi (ad esempio/auth/v1/login) o utilizza l'installazione manuale se si verificano collisioni di percorsi. - API cross-domain: se l'API di backend è ospitata su un dominio diverso da quello del tuo sito web (ad esempio,
examplecdn.netrispetto awww.example.com), AutoExecute funziona automaticamente senza configurazione aggiuntiva del dominio.
Se la corrispondenza con domini di destinazione specifici è importante per la tua integrazione, invia una richiesta di funzionalità.
Nel backend, recupera il token di risposta dall'intestazione della richiesta X-Recaptcha-Token e crea un test entro due minuti.
Installazione manuale
Ti consigliamo di aggiungere la verifica di Fraud Defense a un'interazione utente che deve essere verificata. Ad esempio, se vuoi verificare l'azione di invio di un modulo, devi aggiungere la verifica di Fraud Defense all'azione di invio.
A seconda di dove vuoi aggiungere la verifica di Fraud Defense, scegli l'opzione appropriata:
Aggiungi la verifica a un'interazione dell'utente
Per caricare reCAPTCHA sulla tua pagina web, aggiungi l'API JavaScript con la chiave universale all'interno dell'elemento
<head></head>della pagina web:<head> <script src="https://www.google.com/recaptcha/enterprise.js?render=KEY_ID"></script> ... </head>Per impostazione predefinita, Fraud Defense utilizza la lingua del browser. Se vuoi specificare una lingua diversa, utilizza l'attributo
hl=LANGnello script. Ad esempio, per utilizzare il francese, specifica quanto segue:<script src="https://www.google.com/recaptcha/enterprise.js?render=KEY_ID&hl=fr"></script>Per scoprire le lingue supportate, consulta i codici lingua per Fraud Defense.
Se vuoi specificare una località per il badge, utilizza
badge=LOCATIONcome parametro di query nel tag di script. Ad esempio,https://www.google.com/recaptcha/enterprise.js?render=KEY_ID&badge=bottomleft. Per impostazione predefinita, la località è impostata subottomright. Altri valori possibili sonoinlineebottomleft.Per aggiungere la verifica di Fraud Defense a un'interazione utente, segui questi passaggi:
- Per assicurarti che
grecaptcha.enterprise.execute()venga eseguito dopo il caricamento della libreria Fraud Defense, utilizzagrecaptcha.enterprise.ready(). Chiama
grecaptcha.enterprise.execute()per ogni interazione che vuoi proteggere con la tua chiave universale. Specifica un nome significativo per un'interazione utente nel parametroaction. Per ulteriori indicazioni, consulta Azioni.L'esempio seguente mostra come chiamare
grecaptcha.enterprise.execute()su un'azione di accesso:<script> // Use `requestSubmit()` for extra features like browser input // validation. function onClick(e) { e.preventDefault(); grecaptcha.enterprise.ready(async () => { const token = await grecaptcha.enterprise.execute( 'KEY_ID', {action: 'LOGIN'} ); // IMPORTANT: The 'token' that results from execute is an // encrypted response sent by Fraud Defense to // the end user's browser. // This token must be validated by creating an assessment. // See https://cloud.google.com/recaptcha/docs/create-assessment }); } </script>
- Per assicurarti che
Dopo che è stato generato, invia il token reCAPTCHA al tuo backend e crea una valutazione entro due minuti.
Aggiungi Fraud Defense a un pulsante HTML
Per caricare reCAPTCHA sulla tua pagina web, aggiungi l'API JavaScript con la chiave universale all'interno dell'elemento
<head></head>della pagina web:<head> <script src="https://www.google.com/recaptcha/enterprise.js?render=KEY_ID"></script> ... </head>Per impostazione predefinita, Fraud Defense utilizza la lingua del browser. Se vuoi specificare una lingua diversa, utilizza l'attributo
hl=LANGnello script. Ad esempio, per utilizzare il francese, specifica quanto segue:<script src="https://www.google.com/recaptcha/enterprise.js?render=KEY_ID&hl=fr"></script>Per scoprire le lingue supportate, consulta i codici lingua per Fraud Defense.
Per aggiungere Fraud Defense a un pulsante HTML, segui questi passaggi:
- Definisci una funzione di callback per gestire il token.
<script> function onSubmit(token) { document.getElementById("demo-form").submit(); } // Use `requestSubmit()` for extra features like browser input // validation. </script>Per saperne di più, consulta il metodo requestSubmit().
- Aggiungi attributi al pulsante HTML.
<button class="g-recaptcha" data-sitekey="KEY_ID" data-callback="onSubmit" data-action="submit">Submit</button>Se vuoi specificare una posizione per il badge, utilizza l'attributo
data-badge="LOCATION"nell'elemento che contieneclass="g-recaptcha". Per impostazione predefinita, la località è impostata subottomright. Altri valori possibili sonoinlineebottomleft.- Quando questo pulsante viene utilizzato per inviare un modulo sul tuo sito, il parametro POST
g-recaptcha-responsecontiene il token di risposta.
Dopo che è stato generato, invia il token reCAPTCHA al tuo backend e crea una valutazione entro due minuti.
Passaggi successivi
Per attivare le verifiche CAPTCHA in base a regole personalizzate, configura le policy di verifica.
Per valutare il token di risposta reCAPTCHA, crea una valutazione.