reCAPTCHA v2
e CapMonster Cloud

Risoluzione delle captcha, integrazione sul sito e test end-to-end.

Prezzi della soluzione reCAPTCHA V2

CAPTCHA
Prezzo (USD)
$ 0.60
1000 gettoni
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 V2, 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 V2, 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.

Cos'è Google reCAPTCHA v2
Cos'è Google reCAPTCHA v2
reCAPTCHA v2 è un sistema di protezione di Google progettato per bloccare lo spam e altre azioni automatizzate che possono danneggiare un sito web. Aiuta a distinguere i visitatori reali dai bot, mantenendo il tuo sito sicuro e stabile.
Background
Esempi di reCAPTCHA V2
reCAPTCHA v2
reCAPTCHA v2
La classica captcha con checkbox in cui l'utente deve confermare di essere umano. In alcuni casi appare anche una finestra con un ulteriore compito, ad esempio selezionare determinate immagini.
reCAPTCHA v2 Invisible
reCAPTCHA v2 Invisible
Una versione invisibile della captcha che convalida automaticamente, senza intervento dell'utente e senza dover fare clic sulla casella.
reCAPTCHA v2 Enterprise
reCAPTCHA v2 Enterprise
Versione Enterprise con controlli e funzioni di sicurezza aggiuntivi.

Come risolvere reCAPTCHA v2 con CapMonster Cloud

Quando testi form che includono reCAPTCHA V2 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
Risoluzione di reCAPTCHA v2 con librerie pronte
CapMonster Cloud offre SDK pronti per lavorare comodamente con Python, JavaScript (Node.js) e C#.
Python
JavaScript
C#
Risoluzione, inserimento del token e invio del form
Esempio in Node.js che copre l'intero ciclo di risoluzione della captcha sulla tua pagina. Possibili approcci: usare richieste HTTP per ottenere l'HTML e i parametri della captcha, inviare la risposta e gestire il risultato; oppure utilizzare strumenti di automazione (ad esempio Playwright) per aprire la pagina, attendere la captcha, inviare i parametri (puoi testare con dati corretti o errati), ottenere il risultato tramite il client CapMonster Cloud, inserire il token nel form e vedere l'esito.
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium


const { chromium } = require('playwright');
const { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2Request } = require('@zennolab_com/capmonstercloud-client');

(async () => {
  const browser = await chromium.launch({ headless: false });
  const page = await browser.newPage();

  const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=high';
  const WEBSITE_KEY = '6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd';
  const CMC_API_KEY = 'your_capmonster_cloud_api_key';

  const cmc = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: CMC_API_KEY }));

  await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });

  // Risoluzione della captcha
  const solution = await cmc.Solve(new RecaptchaV2Request({ websiteURL: TARGET_URL, websiteKey: WEBSITE_KEY }));
  const token = solution.solution.gRecaptchaResponse;

  // Inserisci il token e invia il form (sostituisci con il selettore desiderato)
  await page.evaluate((t) => {
    const ta = document.querySelector('textarea#g-recaptcha-response');
    if (ta) ta.value = t;
    document.querySelector('form.formular')?.submit();
  }, token);

  console.log('Captcha risolta e form inviato!');
})();
Come collegare reCAPTCHA v2 al tuo sito
Per capire come funziona la captcha sul tuo sito, conoscere la logica di validazione e riconfigurarla o reinstallarla, consulta questa sezione. Descrive il processo di configurazione della protezione così da coprire rapidamente ogni dettaglio.

1. Vai alla pagina della console di amministrazione reCAPTCHA.

2. Registra un nuovo sito.

Scegli il tipo di captcha — reCAPTCHA v2 (checkbox con sfide oppure variante invisibile).

HowTo Connect image 1

3. Ottieni due chiavi:

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

HowTo Connect image 2

Apri le impostazioni per specificare i domini autorizzati a usare reCAPTCHA oppure per scegliere il livello di sicurezza, dal più semplice al più rigoroso.

4. Esempio di codice lato client. Form HTML con reCAPTCHA v2 (puoi incollare questo snippet nel body della pagina):

Form HTML con reCAPTCHA v2Form HTML con reCAPTCHA v2
arrow

5. Valida la risposta lato server.

Esempio in PHPEsempio in PHP
arrow
Background
Possibili errori e debug
Bug Icon
Sito o chiave non validi
La captcha non si carica o 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
Si è verificato un errore durante il passaggio del risultato alla pagina.
Bug Icon
Response success=false
Il token è scaduto, riutilizzato o falsificato. Abilita il logging delle richieste e controlla il campo error-codes nella risposta di Google.
Verifiche della resilienza della protezione
Dopo l'integrazione assicurati che il sistema protegga davvero il sito dalle azioni automatizzate.
Suggerimenti di sicurezza e ottimizzazione
Conservate la <span class="font-bold">Secret Key</span> solo sul server e non trasmettetela al lato client.
Registrate i codici di errore <span class="font-bold">(error-codes)</span> per capire perché determinati controlli non sono andati a buon fine.
Aggiungete in fondo al modulo i link all’<span class="font-bold">Informativa sulla privacy</span> e ai <span class="font-bold">Termini di utilizzo di Google</span>, 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 V2, è sufficiente individuare il sistema, analizzarne il comportamento e assicurarsi che la protezione funzioni correttamente. Nell’articolo abbiamo mostrato come riconoscere reCAPTCHA V2 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

Domande frequenti su reCAPTCHA v2

Per inviare una richiesta di risoluzione, esegui un POST con un JSON a https://api.capmonster.cloud/createTask:

{
  "clientKey": "API_KEY",
  "task": {
    "type": "RecaptchaV2Task",
    "websiteURL": "[target_page_URL_with_reCAPTCHA]",
    "websiteKey": "[reCAPTCHA_website_key]"
  }
}
  • clientKey — la chiave API del tuo account CapMonster Cloud
  • task.type: imposta RecaptchaV2Task
  • task.websiteURL: URL della pagina in cui appare il captcha
  • task.websiteKey: il sitekey pubblico incorporato nell'HTML della pagina

Per i passaggi successivi, consulta la documentazione sulla risoluzione di reCAPTCHA.

Invia l'attività con una richiesta a https://api.capmonster.cloud/createTask con i parametri descritti nella domanda precedente.

Interroga https://api.capmonster.cloud/getTaskResult con il tuo clientKey e taskId (restituito nella risposta di createTask).

Quando il campo status diventa ready, la risposta include la stringa gRecaptchaResponse — questo è il token risolto.

Invia il token al sito di destinazione con uno dei seguenti metodi, a seconda del tipo di reCAPTCHA v2 e dell'architettura del sito:

  • Iniezione DOM standard: per le integrazioni tipiche con checkbox, inietta il token nell'area di testo nascosta (ad es. document.getElementById("g-recaptcha-response").innerHTML = token;) usando il metodo page.evaluate() di Playwright (o l'equivalente in Puppeteer/Selenium). Quindi chiama programmaticamente form.submit() o attiva il pulsante di invio.
  • Callback JavaScript (reCAPTCHA invisibile): se la pagina usa un captcha invisibile con callback, identifica il nome della funzione nell'attributo data-callback ed eseguila tramite lo script di automazione, passando il token come argomento (ad es. onVerifyCallback("TOKEN_STRING")).
  • Richiesta HTTP diretta: per evitare il rendering del browser, intercetta la richiesta nativa di invio del sito e invia il token direttamente al backend come parte dei dati del form (ad es. g-recaptcha-response=TOKEN_STRING) tramite il client HTTP.

Il server di destinazione estrae il token dalla tua richiesta e lo valida tramite l'endpoint siteverify di Google.

CapMonster Cloud gestisce entrambe le modalità con la stessa chiamata API. Per la modalità invisibile, includi il parametro isInvisible: true nella richiesta createTask. Per confermare correttamente la soluzione reCAPTCHA, determina il metodo con cui il sito invia il token. Questi metodi sono descritti nella domanda precedente.

La causa più frequente è un token già utilizzato o scaduto — i token reCAPTCHA v2 sono monouso e di breve durata, quindi qualsiasi ritardo o invio duplicato causerà questo errore. Inizia registrando la risposta HTTP grezza da https://www.google.com/recaptcha/api/siteverify — l'array error-codes in quella risposta è il segnale diagnostico principale.

Altre due cause comuni: invalid-input-secret significa che è stata passata la chiave segreta errata sul backend, mentre un campo g-recaptcha-response vuoto sul server di solito indica che l'iniezione del token sul frontend è fallita silenziosamente prima dell'invio del form.

Verifica anche che la websiteURL passata a CapMonster Cloud corrisponda esattamente all'origine in cui Google valida il token — una discrepanza produce un errore di binding del dominio.

Per utenti non tecnici: usa l'estensione browser CapMonster Cloud (Chrome/Firefox). Consente di testare il comportamento del captcha direttamente sulla pagina e osservare il processo di risoluzione in tempo reale. Installa l'estensione, aggiungi la tua chiave API e apri la pagina protetta da reCAPTCHA.

Per QA e DevOps: segui un semplice test in tre passaggi:

  1. Invia il form senza risolvere il captcha — deve restituire success: false.
  2. Invia il form con il captcha risolto — la richiesta deve andare a buon fine.
  3. Esegui test di carico (k6 o JMeter, 100+ RPS) e verifica che i token scaduti o riutilizzati vengano correttamente rifiutati (ad es. HTTP 403).

Importante: siteverify restituisce sempre HTTP 200 — gli errori sono determinati dal campo success, non dal codice di stato HTTP.