Questa pagina descrive come rilevare e prevenire violazioni degli account (ATO) utilizzando reCAPTCHA Enterprise.
Gli attacchi ATO in genere si verificano quando un utente malintenzionato invia richieste di accesso agli endpoint API utilizzando credenziali ottenute da una violazione dei dati, nota anche come dump delle password. Questo tipo di attacco può avere successo, anche se il dump delle password proviene da un sito non correlato, in quanto le persone tendono a riutilizzare le password in più account. Questo tipo di attacco non influisce sugli utenti che adottano una corretta pulizia delle password, come l'utilizzo di un gestore delle password.
Prima di iniziare
Prepara l'ambiente per reCAPTCHA Enterprise.
Rileva e previeni gli ATO
Con reCAPTCHA Enterprise, puoi rilevare e impedire gli ATO utilizzando una delle seguenti opzioni:
Utilizza la casella di controllo Non sono un robot
L'aggiunta al tuo sito della casella di controllo Non sono un robot è il modo più semplice e veloce per fornire una certa protezione contro gli ATO senza dover integrare funzionalità aggiuntive, come la verifica tramite SMS o email. Per violare questa protezione è previsto un costo e questa opzione potrebbe essere sufficiente per alcuni siti.
Aggiungi la casella di controllo "Non sono un robot" nelle tue pagine web.
Il codice seguente è un esempio reale di una pagina di accesso semplice protetta dalla casella di controllo:
function onSuccess(token) { // The token is included in the POST data in the g-recaptcha-response // parameter. The backend must create an Assessment with the token // and verify the token is valid. console.log(token); }
<form id="loginForm" action="?" method="POST"> Username: <input type="text" name="username"/><br/> Password: <input type="password" name="password"/><br/> <div class="g-recaptcha" data-sitekey="reCATCHA_sitekey" data-action="account_login" data-callback="onSuccess"></div> </form>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
Puoi sperimentare questo codice in JSFiddle facendo clic sull'icona <>
nell'angolo in alto a destra della finestra del codice.
<html> <head> <title>Account Login - Checkbox</title> <script src="https://www.google.com/recaptcha/enterprise.js" async defer></script> <script> function onSuccess(token) { // The token is included in the POST data in the g-recaptcha-response // parameter. The backend must create an Assessment with the token // and verify the token is valid. console.log(token); } </script> </head> <body> <form id="loginForm" action="?" method="POST"> Username: <input type="text" name="username"/><br/> Password: <input type="password" name="password"/><br/> <div class="g-recaptcha" data-sitekey="6LeAkOgUAAAAACcy3uY6N9H9SJMS27n3Zx2OOnYK" data-action="account_login" data-callback="onSuccess"></div> </form> </body> </html>
Usa i punteggi e le sfide personalizzate
Per proteggerti dagli ATO, utilizza le chiavi basate sul punteggio reCAPTCHA e le verifiche dell'autenticazione a più fattori (MFA), ad esempio le verifiche via email ed SMS in cui i codici monouso (OTP) vengono inviati all'utente.
Per utilizzare chiavi basate sul punteggio e verifiche personalizzate, prendi in considerazione le seguenti opzioni:
Installa chiavi basate sul punteggio per rilevare l'automazione in ATO su larga scala.
Per installare le chiavi basate sul punteggio sulle pagine web, consulta Installare le chiavi basate sul punteggio nelle pagine web.
Per installare le chiavi basate sul punteggio sulle applicazioni mobile, consulta Integrare reCAPTCHA Enterprise con le app per Android o Integrare reCAPTCHA Enterprise con le app per iOS.
Utilizza MFA per verificare la proprietà dell'account al momento dell'accesso o per azioni sensibili.
Per ulteriori informazioni, consulta Configurare l'autenticazione a più fattori.
A seconda del caso d'uso, puoi utilizzare la MFA da sola o con le chiavi basate sul punteggio. Ad esempio, potresti preferire utilizzare le verifiche MFA solo per i punteggi inferiori a una determinata soglia, in modo da ridurre l'attrito.
L'esempio seguente mostra come integrare le chiavi basate sul punteggio nello scenario di accesso.
function submitForm() { grecaptcha.enterprise.ready(function() { grecaptcha.enterprise.execute( 'reCAPTCHA_site_key', {action: 'account_login'}).then(function(token) { document.getElementById("token").value = token; document.getElementByID("loginForm").submit(); }); }); }
<form id="loginForm" action="?" method="POST"> Username: <input type="text" name="username"/><br/> Password: <input type="password" name="password"/><br/> <input type="hidden" id="token" name="recaptcha_token"/> <button onclick="submitForm()">Login</button> </form>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
Puoi sperimentare questo codice in JSFiddle facendo clic sull'icona <>
nell'angolo in alto a destra della finestra del codice.
<html> <head> <title>Account Login - Score</title> <script src="https://www.google.com/recaptcha/enterprise.js" async defer></script> <script> function submitForm() { grecaptcha.enterprise.ready(function() { grecaptcha.enterprise.execute( 'reCAPTCHA_site_key', {action: 'account_login'}).then(function(token) { document.getElementById("token").value = token; document.getElementByID("loginForm").submit(); }); }); } </script> </head> <body> <form id="loginForm" action="?" method="POST"> Username: <input type="text" name="username"/><br/> Password: <input type="password" name="password"/><br/> <input type="hidden" id="token" name="recaptcha_token"/> <button onclick="submitForm()">Login</button> </form> </body> </html>
Passaggi successivi
- Per ulteriori informazioni sulle altre funzionalità di protezione dell'account, consulta l'articolo Funzionalità di protezione degli account utente.