CAPTCHA de Texto (ImageToText)
e CapMonster Cloud

Solução de CAPTCHA, integração no site e testes.

Preços da solução CAPTCHA de texto (ImageToText)

CAPTCHA
Preço (USD)
$ 0.30
1000 tokens
Herdou um site com captcha ou outra proteção mas sem acesso ao código-fonte? É natural perguntar qual solução está instalada, se está configurada corretamente e como testá-la.

Neste artigo procurámos responder a todas as questões importantes. Para começar a resolver o problema, o primeiro passo é identificar que sistema de proteção está a ser utilizado. Para isso, pode consultar a lista de captchas e sistemas de proteção antibot mais populares, onde encontrará exemplos visuais e sinais principais que ajudam a perceber rapidamente com o que está a lidar.

Se verificar que o seu site utiliza CAPTCHA de texto (ImageToText), o passo seguinte é analisar mais detalhadamente as suas características e o seu funcionamento. Neste mesmo artigo também pode consultar o guia de integração de CAPTCHA de texto (ImageToText), para compreender totalmente como o sistema funciona no seu site. Isto permitirá não só entender a proteção atual, como também planear corretamente a sua manutenção.

O que é ImageToText CAPTCHA
O que é ImageToText CAPTCHA
ImageToText CAPTCHA é um sistema clássico de proteção de sites baseado no reconhecimento de texto a partir de imagens. O usuário precisa digitar os caracteres (letras, números ou uma combinação) exibidos numa imagem distorcida. Este método ajuda a diferenciar humanos de scripts automatizados. É usado para formulários de registro, login, envio de mensagens, comentários e para prevenir requisições automáticas em massa.

Como resolver ImageToText CAPTCHA via CapMonster Cloud

Ao testar formulários com ImageToText CAPTCHA, muitas vezes é necessário verificar se a CAPTCHA funciona corretamente e está integrada de forma adequada.
Você pode testar a CAPTCHA manualmente no seu site:
  • Abra a página com o formulário e verifique se a CAPTCHA está visível.
  • Tente enviar o formulário sem resolver a CAPTCHA — o servidor deve retornar um erro.
  • Após resolver a CAPTCHA corretamente, o formulário deve ser enviado sem erros.
Para reconhecimento automático da CAPTCHA, você pode usar serviços especializados, como o CapMonster Cloud — uma ferramenta que recebe os parâmetros da CAPTCHA, processa-os nos seus servidores e retorna uma resposta pronta. Essa resposta pode ser inserida no campo correto para passar na verificação sem interação do usuário.

Trabalhar com o CapMonster Cloud através da API normalmente envolve os passos seguintes:

Criação da tarefaCriação da tarefa
arrow
Envio do pedido APIEnvio do pedido API
arrow
Receção do resultadoReceção do resultado
arrow
Aplicação do token na páginaAplicação do token na página
arrow
Reconhecimento de CAPTCHA de imagem usando bibliotecas prontas
O serviço CapMonster Cloud oferece bibliotecas prontas para uso em Python, JavaScript (Node.js) e C#.
Python
JavaScript
C#
Obter solução, inserir e enviar formulário
Exemplo em Node.js para o ciclo completo de reconhecimento de CAPTCHA na sua página. Possíveis abordagens: usar requisições HTTP para obter HTML e parâmetros do sistema de proteção, enviar a resposta e processar o resultado. Ou, como no exemplo abaixo, com ferramentas de automação (Playwright) — abrir a página, esperar a verificação, enviar parâmetros via cliente CapMonster Cloud, obter o resultado, inserir no campo correspondente (para testes você pode usar dados corretos ou incorretos) e observar o resultado.

  // 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"; // Insira sua chave de API do CapMonster Cloud

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

    // Verifique o saldo, se necessário
    const balance = await cmcClient.getBalance();
    console.log("Balance:", balance);

    // 1. Inicie o Playwright e abra a página com o formulário
    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. Obtenha a URL da CAPTCHA da página (exemplo via seletor <img>)

    // 2. Obtenha a URL da CAPTCHA da página (exemplo via seletor <img>)
    const captchaUrl = await page.getAttribute("#captcha-img", "src");

    // 3. Baixe a imagem e converta para Base64
    const response = await fetch(captchaUrl);
    const imageBuffer = await response.arrayBuffer();
    const imageBase64 = Buffer.from(imageBuffer).toString('base64');

    // 4. Crie a requisição para resolver a ImageToText
    const imageToTextRequest = new ImageToTextRequest({
        body: imageBase64,
        CapMonsterModule: CapMonsterModules.YandexWave, // ou outro módulo
        Case: true,
        numeric: 0,
        recognizingThreshold: 65,
        math: false
    });

    // 5. Obtenha a solução da CAPTCHA
    const result = await cmcClient.Solve(imageToTextRequest);
    console.log("Captcha solution:", result.solution.text);

    // 6. Insira a solução no campo do formulário e envie
    await page.fill("#captcha-input", result.solution.text); // Substitua pelo seu seletor
    await page.click("#submit-button"); // Substitua pelo seletor do seu botão
    await page.waitForLoadState("networkidle");

    console.log("Formulário enviado com a solução da CAPTCHA");

    // 7. Feche o navegador
    await browser.close();
}

solveImageToTextAndFillField().catch(console.error);


  
Como conectar uma CAPTCHA de texto ao seu site
Para compreender completamente o funcionamento da CAPTCHA no seu site, entender a lógica de verificação ou reconfigurar, recomendamos esta seção. Ela descreve o processo de integração da proteção — ajudando a entender rapidamente todos os detalhes.

Passo 1. Escolha uma abordagem

Primeiro, decida como usará a CAPTCHA:

Opção 1 — fornecedor externo

Adequado se precisar de rápida implementação e suporte mínimo.

Vantagens:

  • Integração rápida
  • Proteção pronta contra bots
  • Não precisa atualizar algoritmos manualmente

Desvantagens:

  • Dependência de serviço externo
  • Customização limitada

Opção 2 — CAPTCHA de texto personalizada

Adequado se precisar de controle total e integração própria.

Vantagens:

  • Controle total sobre lógica e design
  • Sem dependências externas
  • Pode ser adaptada a cenários específicos

Desvantagens:

  • É necessário implementar a proteção contra bots manualmente
  • Requer manutenção e ajustes ao longo do tempo

Passo 2. Implemente a geração da CAPTCHA

Para fornecedor externo

  • Registre-se no serviço
  • Obtenha as chaves (site key / secret key)
  • Inclua o script na página do formulário

Para CAPTCHA personalizada

  • Gere uma sequência aleatória de caracteres (números ou letras)
  • Renderize na imagem (Canvas, SVG ou geração no servidor)
  • Adicione distorções: ruído, linhas, rotação dos caracteres

Passo 3. Mostre a CAPTCHA ao usuário

  • Insira a imagem da CAPTCHA próximo ao formulário
  • Adicione um campo de entrada de texto
  • Implemente um botão de atualização da CAPTCHA

Importante: cada carregamento deve gerar um novo código.

Passo 4. Envie os dados para o servidor

Ao enviar o formulário, envie:

  • O texto digitado pelo usuário
  • ID da CAPTCHA ou token de sessão

Para CAPTCHA personalizada, o código não deve ser armazenado no cliente — apenas no servidor.

Passo 5. Verifique a CAPTCHA no servidor

Fornecedor

  • Envie o token da CAPTCHA para o servidor do fornecedor
  • Receba o resultado da verificação (sucesso / erro)

CAPTCHA personalizada

  • Compare o texto inserido com o valor armazenado
  • Considere o tempo de validade da CAPTCHA (ex: 1–2 minutos)

Passo 6. Tome uma decisão

  • Se a CAPTCHA for resolvida — execute a ação (login, registro, envio do formulário)
  • Se não — exiba um erro e gere uma nova CAPTCHA

Passo 7. Reforce a proteção (recomendado)

Mesmo para CAPTCHA de texto, recomenda-se adicionar:

  • Limite de tentativas
  • Vinculação ao IP, sessão ou cookie
  • Tokens temporários (únicos)
  • Registrar atividades suspeitas
Background
Possíveis erros e depuração
Bug Icon
CAPTCHA de imagem não carrega
(Imagem vazia, 404/500 ou erro de geração) — geralmente causado por lógica incorreta de geração. Certifique-se de que o servidor cria a imagem corretamente e a envia ao cliente, e que o caminho do endpoint está correto.
Bug Icon
Código CAPTCHA inválido ou vazio
Verifique se a entrada do usuário é realmente enviada para o servidor e comparada com o valor armazenado da CAPTCHA.
Bug Icon
Códigos não coincidem mesmo com entrada correta

Certifique-se de que:

  • A CAPTCHA não seja regenerada antes da verificação;
  • O código seja armazenado separadamente para cada sessão ou token;
  • O tempo de validade da CAPTCHA não tenha expirado.
Bug Icon
Tempo de vida da CAPTCHA expirou
Aumente o TTL da CAPTCHA no servidor ou gere uma nova em tentativas subsequentes.
Verificações de robustez
Após a integração, é importante garantir que a CAPTCHA de texto realmente proteja o formulário.
Recomendações de segurança e otimização
Armazene a resposta correta da CAPTCHA apenas no <span class="font-bold">servidor</span> (memória, Redis ou DB), não a envie ao cliente.
Use tokens únicos ou identificadores da CAPTCHA.
Limite o número de tentativas por CAPTCHA.
Use sempre HTTPS para enviar dados do formulário e respostas da CAPTCHA.
Registre erros de geração e verificação da CAPTCHA (hora, IP, motivo) — facilita depuração e análise de ataques.
Atualize regularmente o algoritmo de geração (fontes, distorções, ruído).
Conclusão

Se você recebeu um site com CAPTCHA ou outro sistema de proteção já instalado e não tem acesso ao código — não há problema! É fácil identificar qual tecnologia está sendo usada. Para verificar a funcionalidade, você pode usar o serviço de reconhecimento CapMonster Cloud em um ambiente de teste isolado para garantir que o processamento de tokens e a lógica de verificação funcionem corretamente.

No caso da CAPTCHA de imagem — basta identificar o sistema, estudar seu comportamento e garantir que a proteção funcione corretamente. Este artigo mostrou como identificar a CAPTCHA de imagem (ComplexImage) e como conectá-la ou reconfigurá-la para manter a proteção de forma segura e controlada.

Conclusion
Links úteis
DocIconDocumentação CapMonster Cloud (trabalho com CAPTCHA de texto)DocIconGuia: como criar sua própria CAPTCHADocIconRegistro no CapMonster Cloud

Perguntas frequentes sobre ImageToText CAPTCHA

  • Armazene as respostas CAPTCHA apenas no servidor, por exemplo em memória, Redis ou numa base de dados, e nunca as exponha ao cliente.
  • Vincule cada CAPTCHA a uma sessão única ou a um token de uso único para que não possa ser reutilizada entre pedidos.
  • Defina um tempo de expiração curto, como 1–2 minutos, para que códigos antigos fiquem automaticamente inválidos.
  • Invalide a CAPTCHA imediatamente após uma verificação bem-sucedida para torná-la de uso único.
  • Limite o número de tentativas e gere uma nova CAPTCHA após cada tentativa falhada em vez de reutilizar a mesma imagem.
  • Vincule cada CAPTCHA a um endereço IP, sessão ou cookie para evitar abusos entre pedidos.
  • Registe falhas de geração e validação de CAPTCHA, incluindo carimbo de data/hora, IP e motivo da rejeição, para detetar padrões de ataque e ajustar limiares.
  • Utilize sempre HTTPS para proteger os dados do formulário e as respostas CAPTCHA em trânsito.
  • Atualize regularmente as definições de geração de desafios, como tipos de letra, distorção e ruído, para dificultar a resolução automatizada.

Se a imagem CAPTCHA estiver em branco ou não carregar, verifique se o endpoint de geração no servidor está a criar a imagem corretamente, a devolvê-la adequadamente ao cliente e se o URL do endpoint está correto.

Se os utilizadores introduzirem o código correto mas a validação falhar, certifique-se de que a CAPTCHA não é regenerada entre o carregamento da página e o envio do formulário.

Verifique se o valor CAPTCHA armazenado está associado à mesma sessão ou token utilizado durante a validação.

Verifique se a CAPTCHA expirou antes do envio, pois um código expirado causará uma discrepância mesmo que a entrada esteja correta.

Além dos campos obrigatórios type e body, pode usar cinco parâmetros opcionais para afinar o reconhecimento:

  • recognizingThreshold: Defina um valor de 0 a 100 para controlar o limiar de confiança; valores mais baixos aceitam mais resultados, enquanto valores mais altos são mais rigorosos.
  • case: Defina como true se a CAPTCHA for sensível a maiúsculas e minúsculas
  • numeric: Defina como 1 se a imagem contiver apenas dígitos
  • math: Defina como true se a imagem contiver uma expressão matemática
  • capMonsterModule: Especifique um módulo de reconhecimento como yandex para melhorar a precisão para fornecedores suportados. Para o conjunto completo de módulos, consulte a documentação.

Há uma exceção importante: ao usar o módulo captcha_math através do parâmetro capMonsterModule, não deve definir math: true no mesmo pedido. Para todos os outros módulos em que a imagem CAPTCHA contém uma expressão matemática, definir math: true instrui o solver a avaliar e devolver o resultado numérico em vez da cadeia de caracteres original. Ler mais