logo
bars

reCAPTCHA v3
e CapMonster Cloud

Risoluzione della captcha, integrazione sul sito e test.
Hai ereditato un sito con una captcha o un'altra protezione ma senza accesso al codice sorgente? È normale chiedersi quale soluzione sia installata, se sia configurata correttamente e come testarla.

In questo articolo abbiamo cercato di rispondere a tutte le domande principali. Il primo passo per risolvere il problema è capire quale sistema di protezione viene utilizzato. A questo scopo puoi consultare l’elenco dei captcha e dei sistemi di protezione antibot più diffusi, dove trovi esempi visivi e caratteristiche chiave che ti aiutano a identificare rapidamente con cosa hai a che fare.

Se scopri che sul tuo sito viene utilizzato reCAPTCHA v3, il passo successivo è analizzarne più nel dettaglio le proprietà e il funzionamento. In questo stesso articolo puoi anche studiare la guida all’integrazione di reCAPTCHA v3, per comprendere a fondo come opera sul tuo sito. Questo ti permetterà non solo di capire la protezione attuale, ma anche di pianificarne correttamente la manutenzione.

Che cos’è Google reCAPTCHA v3
Che cos’è Google reCAPTCHA v3
reCAPTCHA v3 è una protezione invisibile di Google che distingue gli utenti reali dai bot senza richiedere il controllo “Non sono un robot”. Nella pagina viene eseguito uno script nascosto che analizza il comportamento del visitatore e restituisce un punteggio di attendibilità (score) compreso tra 0,0 e 1,0. Lo sviluppatore imposta una soglia al di sotto della quale può essere richiesta una verifica aggiuntiva o un blocco, garantendo la protezione senza ulteriori azioni da parte dell’utente.
Come risolvere reCAPTCHA v3 tramite CapMonster Cloud

Quando testi form che includono reCAPTCHA v3 devi spesso verificare che la captcha funzioni e sia integrata correttamente.

Puoi verificare manualmente la captcha inserita nel tuo sito.

  • Apri la pagina del form e assicurati che la captcha venga visualizzata.
  • Prova a inviare il form senza risolverla: il server dovrebbe restituire un errore.
  • Dopo una soluzione corretta il form deve essere inviato senza problemi.

Per la risoluzione automatica puoi usare strumenti come CapMonster Cloud, che accetta i parametri della captcha, li elabora sui propri server e restituisce un token pronto all'uso. Inserisci quel token nel form per superare il controllo senza intervento dell'utente.

Lavorare con CapMonster Cloud via API di solito prevede i seguenti passaggi:

Creazione della taskCreazione della task
arrow
Invio della richiesta APIInvio della richiesta API
arrow
Ricezione del risultatoRicezione del risultato
arrow
Inserimento del token nella paginaInserimento del token nella pagina
arrow
Riconoscimento di reCAPTCHA v3 con librerie pronte all’uso
Il servizio CapMonster Cloud mette a disposizione librerie pronte per un utilizzo semplice con i linguaggi Python, JavaScript (Node.js) e C#.
Python
JavaScript
C#
Risoluzione, inserimento del token e invio del form
Esempio in Node.js per l’intero ciclo di riconoscimento della captcha sulla tua pagina web. Possibili approcci: usare richieste HTTP per ottenere l’HTML e i parametri della captcha, inviare la risposta ed elaborare il risultato; oppure, con strumenti di automazione (ad esempio Playwright), aprire la pagina, attendere il caricamento della captcha, inviare i parametri (per i test puoi inviare sia dati corretti sia errati), ottenere il risultato tramite il client CapMonster Cloud, inserire il token nel form e osservare il risultato.
const { chromium } = require('playwright');
const { 
  CapMonsterCloudClientFactory, 
  ClientOptions, 
  RecaptchaV3ProxylessRequest 
} = require('@zennolab_com/capmonstercloud-client');

(async () => {
  const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta'; // URL della tua pagina con la captcha
  const SITE_KEY = '6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob';
  const API_KEY = 'your_capmonster_cloud_api_key'; // Specifica la tua chiave API di CapMonster Cloud

  // Creazione del client CapMonster
  const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));

  // Apertura del browser
  const browser = await chromium.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });

  // Configurazione del task reCAPTCHA v3
  const recaptchaRequest = new RecaptchaV3ProxylessRequest({
    websiteURL: TARGET_URL,
    websiteKey: SITE_KEY,
    minScore: 0.6,
    pageAction: 'myverify', // corrispondenza con l’action sulla pagina
  });

  // Risoluzione della captcha
  const solution = await cmcClient.Solve(recaptchaRequest);
  const token = solution.solution?.gRecaptchaResponse;

  if (!token) {
    console.error('Токен пустой, проверьте sitekey и URL');
    await browser.close();
    return;
  }

  console.log('Token ottenuto:', token);

  // Inserimento del token nel campo nascosto ed emulazione del click sul pulsante 
  // Sostituisci con i selettori di cui hai bisogno
  await page.evaluate((t) => {
    const input = document.querySelector('#v3_token');
    if (input) input.value = t;

    const form = document.querySelector('#v3_form');
    if (form) form.submit();
  }, token);

  console.log('Token inserito e form inviato');

  await page.waitForTimeout(5000);
  await browser.close();
})();
Come collegare reCAPTCHA v3 al tuo sito
Per orientarti con sicurezza nel funzionamento della captcha sul tuo sito, comprenderne la logica di verifica e poterla ricollegare o riconfigurare, ti consigliamo di studiare questa sezione. Qui è descritto il processo di attivazione della protezione — questo ti aiuterà a capire rapidamente tutti i dettagli.

1. Vai alla pagina del pannello di amministrazione di reCAPTCHA.

2. Registra un nuovo sito e scegli come tipo di captcha reCAPTCHA v3

HowTo Connect image 1

3. Ottieni le due chiavi:

  • Site key — chiave pubblica (utilizzata nel frontend);
  • Secret key — chiave privata (utilizzata sul server per la verifica)

HowTo Connect image 2

Puoi aprire le impostazioni dove, ad esempio, è possibile specificare i domini su cui utilizzare reCAPTCHA oppure configurare avvisi relativi a problemi sul sito o a un aumento di traffico sospetto.

4. Esempi di codice per il lato client

Il modo più semplice per usare reCAPTCHA v3 è includere le API JavaScript e aggiungere alcuni attributi al pulsante.

Inclusione dell’API:

<script src="https://www.google.com/recaptcha/api.js"></script>

Funzione di callback per il form:

<script>
  function onSubmit(token) {
    document.getElementById("form").submit();
  }
</script>

Pulsante con attributi reCAPTCHA:

<button class="g-recaptcha" 
        data-sitekey="reCAPTCHA_sitekey" 
        data-callback='onSubmit' 
        data-action='submit'>Submit</button>

Per un controllo completo, utilizza grecaptcha.execute con il parametro render:

Inclusione dell’API con la chiave:

<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>

Chiamata programmata:

<script>
  function onClick(e) {
    e.preventDefault();
    grecaptcha.ready(function() {
      grecaptcha.execute('reCAPTCHA_sitekey', {action: 'submit'}).then(function(token) {
          // Invia il token al server per la verifica
      });
    });
  }
</script>

Il token deve essere inviato immediatamente al server per la verifica.

Note importanti:

  • Validità del token: il token ricevuto da reCAPTCHA v3 è valido per 2 minuti. Assicurati di inviarlo al server entro questo intervallo di tempo.
  • Verifica sul server: una volta ricevuto il token, il server deve inviare una richiesta POST a https://www.google.com/recaptcha/api/siteverify con i parametri:
    – secret: la tua chiave segreta
    – response: il token ricevuto dal client
    – remoteip (facoltativo): l’indirizzo IP dell’utente
  • Il server di Google restituirà una risposta JSON contenente informazioni sul risultato della verifica.

5. Ora effettua la verifica della risposta lato server

Esempio in PHPEsempio in PHP
arrow

Note:

  • Assicurati che, lato client, il token venga inviato in un campo nascosto del form con nome recaptcha-token:
    • <input type="hidden" name="recaptcha-token" id="recaptcha-token">

      • La soglia del score può essere modificata in base al livello di severità desiderato (ad esempio 0,3–0,7).
      • La verifica di action === 'submit' aumenta la sicurezza e consente di assicurarsi che il token sia stato emesso per la specifica azione di invio sulla pagina.
Background
Possibili errori e debug
Bug Icon
Sito o chiave non validi
La captcha non viene caricata oppure restituisce invalid-input-secret.
Bug Icon
Timeout di risoluzione
Il server non ha ricevuto la risposta in tempo, aumenta il tempo di attesa.
Bug Icon
Token vuoto
Errore durante il passaggio del risultato alla pagina.
Bug Icon
Risposta success=false
Il token è scaduto, è stato riutilizzato o manomesso. Per la diagnosi abilita il log delle richieste e controlla il campo error-codes nella risposta di Google.
Bug Icon
Score basso (ad esempio <0.5)
Può portare al rifiuto anche con success=true, poiché Google valuta la fiducia nell’utente in base allo score.
Bug Icon
Controlla il campo action
Per assicurarti che il token sia destinato a una specifica azione sulla pagina
Verifiche della resilienza della protezione
Dopo l'integrazione assicurati che il sistema protegga davvero il sito dalle azioni automatizzate.
Shield Icon
Prova a eseguire una richiesta senza risolvere la captcha — il server dovrebbe restituire success: false.
Shield Icon
Esegui test di carico (ad esempio con k6 o JMeter) a una velocità superiore a 100 richieste al secondo — la captcha deve continuare a essere visualizzata correttamente e il sistema di validazione deve rimanere stabile.
Shield Icon
Verifica la reazione del server a un token scaduto, riutilizzato o falsificato — la risposta attesa è: 403 Forbidden oppure rifiuto in base alla soglia di attendibilità (score al di sotto del valore minimo).
Suggerimenti di sicurezza e ottimizzazione
Conserva la <b>Secret Key</b> solo sul server, non inviarla mai al lato client.
Conserva la Secret Key solo sul server, non inviarla mai al lato client.
Registrate i codici di errore (<b>error-codes</b>) e il valore di <b>score</b> per comprendere i motivi dei rifiuti.
Registrate i codici di errore (error-codes) e il valore di score per comprendere i motivi dei rifiuti.
<b>Controlla il campo action</b> nella risposta di Google per assicurarti che il token sia destinato all’azione corretta sulla pagina.
Controlla il campo action nella risposta di Google per assicurarti che il token sia destinato all’azione corretta sulla pagina.
Aggiungi in fondo al form i link all’<b>Informativa sulla privacy</b> e ai <b>Termini di servizio di Google</b>, come richiesto dalla licenza.
Aggiungi in fondo al form i link all’Informativa sulla privacy e ai Termini di servizio di Google, come richiesto dalla licenza.
Conclusione

Se ti è capitato un sito con un captcha o un altro sistema di protezione già installato e senza accesso al codice, nessun problema! È piuttosto facile capire quale tecnologia viene utilizzata. Per verificare che tutto funzioni correttamente, puoi usare il servizio di riconoscimento CapMonster Cloud in un ambiente di test isolato, così da assicurarti che il meccanismo di elaborazione dei token e la logica di verifica funzionino correttamente.

Nel caso di reCAPTCHA v3, è sufficiente individuare il sistema, analizzarne il comportamento e assicurarsi che la protezione funzioni correttamente. Nell’articolo abbiamo mostrato come riconoscere reCAPTCHA v3 e dove trovare le istruzioni per la sua integrazione o riconfigurazione, in modo da poter mantenere la protezione in modo affidabile e controllarne il funzionamento.

Conclusion