CAPTCHA testuale (ImageToText)
e CapMonster Cloud

Risoluzione del captcha, integrazione sul sito e test.

Prezzi della soluzione CAPTCHA testuale (ImageToText)

CAPTCHA
Prezzo (USD)
$ 0.30
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 CAPTCHA testuale (ImageToText), il passo successivo è analizzarne più nel dettaglio le proprietà e il funzionamento. In questo stesso articolo puoi anche studiare la guida all’integrazione di CAPTCHA testuale (ImageToText), 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'è ImageToText CAPTCHA
Cos'è ImageToText CAPTCHA
ImageToText CAPTCHA è un sistema classico di protezione dei siti web basato sul riconoscimento del testo dalle immagini. L'utente deve inserire i caratteri (lettere, numeri o una loro combinazione) mostrati in un'immagine distorta. Questo metodo permette di distinguere gli esseri umani dagli script automatizzati. Viene utilizzato per proteggere moduli di registrazione, login, invio di messaggi, commenti e per prevenire richieste automatiche massicce.

Come risolvere ImageToText CAPTCHA tramite CapMonster Cloud

Durante il test dei moduli con ImageToText CAPTCHA, spesso è necessario verificare che il captcha funzioni correttamente e sia integrato correttamente.
Puoi testare manualmente il captcha integrato nel tuo sito:
  • Apri la pagina con il modulo e assicurati che il captcha sia visualizzato.
  • Prova a inviare il modulo senza risolvere il captcha — il server dovrebbe restituire un errore.
  • Dopo una risoluzione corretta del captcha, il modulo dovrebbe essere inviato senza errori.
Per il riconoscimento automatico del captcha, puoi utilizzare servizi specializzati come CapMonster Cloud — uno strumento che riceve i parametri del captcha, li elabora sui propri server e restituisce una risposta pronta. Questa risposta può essere inserita nel campo corrispondente per completare la verifica 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 dei captcha basati su immagini utilizzando librerie pronte
Il servizio CapMonster Cloud fornisce librerie pronte per l’uso nei linguaggi Python, JavaScript (Node.js) e C#.
Python
JavaScript
C#
Risoluzione, inserimento della risposta e invio del modulo
Esempio in Node.js per l’intero ciclo di riconoscimento del captcha sulla tua pagina web. Possibili approcci: utilizzare richieste HTTP per ottenere l’HTML e i parametri del sistema di protezione, inviare la risposta e gestire il risultato. Oppure, come nell’esempio sottostante, usare strumenti di automazione (ad esempio Playwright) — aprire la pagina, attendere la verifica, inviare i parametri tramite il client CapMonster Cloud, ottenere il risultato, inserirlo nel campo corrispondente (per test puoi usare dati corretti o errati) e osservare il risultato.
python

  // npm install playwright @zennolab_com/capmonstercloud-client
  // npx playwright install chromium

import { CapMonsterCloudClientFactory, ClientOptions, ImageToTextRequest, CapMonsterModules } from '@zennolab_com/capmonstercloud-client';
import { chromium } from 'playwright';

const API_KEY = "YOUR_API_KEY"; // Inserisci la tua chiave API di CapMonster Cloud

async function solveImageToTextAndFillField() {
    const cmcClient = CapMonsterCloudClientFactory.Create(
        new ClientOptions({ clientKey: API_KEY })
    );

    // Puoi anche controllare il saldo
    const balance = await cmcClient.getBalance();
    console.log("Balance:", balance);

    // 1. Avvia Playwright e apri la pagina con il modulo
    const browser = await chromium.launch({ headless: false });
    const context = await browser.newContext();
    const page = await context.newPage();
    await page.goto("https://example.com/form"); // 2. Ottieni l’URL del captcha dalla pagina (esempio tramite selettore <img>)

    // 2. Ottieni l’URL del captcha dalla pagina (esempio tramite selettore <img>)
    const captchaUrl = await page.getAttribute("#captcha-img", "src");

    // 3. Scarica l’immagine e converti in Base64
    const response = await fetch(captchaUrl);
    const imageBuffer = await response.arrayBuffer();
    const imageBase64 = Buffer.from(imageBuffer).toString('base64');

    // 4. Crea una richiesta per risolvere ImageToText
    const imageToTextRequest = new ImageToTextRequest({
        body: imageBase64,
        CapMonsterModule: CapMonsterModules.YandexWave, // o un altro modulo
        Case: true,
        numeric: 0,
        recognizingThreshold: 65,
        math: false
    });

    // 5. Ottieni la soluzione del captcha
    const result = await cmcClient.Solve(imageToTextRequest);
    console.log("Captcha solution:", result.solution.text);

    // 6. Inserisci la soluzione nel campo del modulo e invia
    await page.fill("#captcha-input", result.solution.text); // Sostituire con il tuo selettore
    await page.click("#submit-button"); // Sostituire con il selettore del tuo pulsante
    await page.waitForLoadState("networkidle");

    console.log("Modulo inviato con soluzione del captcha");

    // 7. Chiudi il browser
    await browser.close();
}

solveImageToTextAndFillField().catch(console.error);


  
Come collegare un captcha testuale al tuo sito
Per comprendere bene il funzionamento del captcha sul tuo sito, la logica di verifica, o per riconnetterlo o riconfigurarlo, ti consigliamo di studiare questa sezione. Descrive il processo di integrazione della protezione e aiuta a capire rapidamente tutti i dettagli.

Passo 1. Scegli l’approccio

Per prima cosa devi decidere come utilizzare il captcha:

Opzione 1 — Fornitore esterno

Adatto se serve una rapida integrazione e minima manutenzione.

Vantaggi:

  • Integrazione rapida
  • Protezione dai bot pronta
  • Nessun aggiornamento manuale degli algoritmi necessario

Svantaggi:

  • Dipendenza da un servizio esterno
  • Personalizzazione limitata

Opzione 2 — CAPTCHA testuale personalizzato

Adatto se serve pieno controllo e integrazione su misura.

Vantaggi:

  • Controllo totale sulla logica e sul design
  • Nessuna dipendenza esterna
  • Adattabile a scenari specifici

Svantaggi:

  • Bisogna implementare la protezione dai bot da soli
  • Richiede manutenzione e miglioramenti nel tempo

Passo 2. Implementa la generazione del captcha

Per un fornitore

  • Registrati al servizio
  • Ottieni le chiavi (site key / secret key)
  • Integra lo script nella pagina con il modulo

Per captcha personalizzato

  • Genera una stringa casuale (numeri o lettere)
  • Visualizzala su un’immagine (Canvas, SVG o generazione lato server)
  • Aggiungi distorsioni: rumore, linee, rotazione dei caratteri

Passo 3. Mostra il captcha all’utente

Importante: ogni caricamento deve generare un nuovo codice.

Passo 4. Trasmetti i dati al server

Al momento dell’invio del modulo, invia:

Per captcha personalizzato, il codice non deve essere memorizzato sul client — solo sul server.

Passo 5. Verifica il captcha sul server

Fornitore

Captcha personalizzato

Passo 6. Prendi una decisione

Passo 7. Rafforza la protezione (consigliato)

Anche per un captcha testuale è consigliabile aggiungere:

Background
Possibili errori e debug
Bug Icon
Il captcha basato su immagini non si carica
(Immagine vuota, 404/500 o errore di generazione) — di solito dovuto a logica di generazione errata. Assicurati che il server generi correttamente l’immagine e la restituisca al client, e che il percorso dell’endpoint sia corretto.
Bug Icon
Codice captcha non valido o vuoto
Verifica che l’input dell’utente sia effettivamente trasmesso al server e confrontato con il valore del captcha salvato.
Bug Icon
Codici non corrispondenti nonostante l’input corretto

Assicurati che:

  • Il captcha non venga rigenerato prima della verifica;
  • Il codice sia memorizzato separatamente per ogni sessione o token;
  • Il captcha non sia scaduto.
Bug Icon
Tempo di vita del captcha scaduto
Aumenta il TTL del captcha sul server o aggiorna il captcha in caso di tentativi ripetuti.
Conclusione

Se hai un sito con captcha già installato o un altro sistema di protezione e non hai accesso al codice — nessun problema! È abbastanza semplice determinare quale tecnologia viene utilizzata. Per verificare il corretto funzionamento, puoi usare il servizio di riconoscimento CapMonster Cloud in un ambiente di test isolato per assicurarti che il trattamento dei token e la logica di verifica funzionino correttamente.

Per un captcha basato su immagini, basta identificare il sistema, studiarne il comportamento e assicurarsi che la protezione funzioni correttamente. In questo articolo abbiamo mostrato come identificare un captcha basato su immagini (ComplexImage) e come collegarlo o riconfiguralo per mantenere e controllare la protezione con sicurezza.

Conclusion
Link utili
DocIconDocumentazione CapMonster Cloud (lavoro con captcha testuali)DocIconGuida: come creare il tuo captchaDocIconRegistrazione a CapMonster Cloud

Domande frequenti su ImageToText CAPTCHA

  • Memorizza le risposte CAPTCHA solo sul server, ad esempio in memoria, in Redis o in un database, e non esporle mai al client.
  • Associa ogni CAPTCHA a una sessione univoca o a un token monouso in modo che non possa essere riutilizzata tra le richieste.
  • Imposta un breve tempo di scadenza, ad esempio 1–2 minuti, in modo che i codici vecchi diventino automaticamente non validi.
  • Invalida la CAPTCHA immediatamente dopo una verifica riuscita per renderla monouso.
  • Limita il numero di tentativi e genera una nuova CAPTCHA dopo ogni tentativo fallito invece di riutilizzare la stessa immagine.
  • Associa ogni CAPTCHA a un indirizzo IP, una sessione o un cookie per prevenire abusi tra le richieste.
  • Registra gli errori di generazione e validazione delle CAPTCHA, inclusi timestamp, IP e motivo del rifiuto, per rilevare schemi di attacco e regolare le soglie.
  • Usa sempre HTTPS per proteggere i dati del modulo e le risposte CAPTCHA in transito.
  • Aggiorna regolarmente le impostazioni di generazione delle sfide, come font, distorsione e rumore, per rendere più difficile la risoluzione automatizzata.

Se l'immagine CAPTCHA è vuota o non si carica, verifica che l'endpoint di generazione lato server crei correttamente l'immagine, la restituisca correttamente al client e che l'URL dell'endpoint sia corretto.

Se gli utenti inseriscono il codice corretto ma la validazione fallisce, assicurati che la CAPTCHA non venga rigenerata tra il caricamento della pagina e l'invio del modulo.

Verifica che il valore CAPTCHA memorizzato sia collegato alla stessa sessione o token utilizzato durante la validazione.

Controlla se la CAPTCHA è scaduta prima dell'invio, poiché un codice scaduto causerà una discrepanza anche se l'input è corretto.

Oltre ai campi obbligatori type e body, puoi usare cinque parametri opzionali per affinare il riconoscimento:

  • recognizingThreshold: Imposta un valore da 0 a 100 per controllare la soglia di confidenza; valori più bassi accettano più risultati, mentre valori più alti sono più rigorosi.
  • case: Imposta su true se la CAPTCHA è sensibile alle maiuscole/minuscole
  • numeric: Imposta su 1 se l'immagine contiene solo cifre
  • math: Imposta su true se l'immagine contiene un'espressione matematica
  • capMonsterModule: Specifica un modulo di riconoscimento come yandex per migliorare la precisione per i provider supportati. Per l'elenco completo dei moduli, consulta la documentazione.

C'è un'eccezione importante: quando si usa il modulo captcha_math tramite il parametro capMonsterModule, non devi impostare math: true nella stessa richiesta. Per tutti gli altri moduli in cui l'immagine CAPTCHA contiene un'espressione matematica, impostare math: true indica al solver di valutare e restituire il risultato numerico anziché la stringa di caratteri grezza. Scopri di più