Текстовая CAPTCHA (ImageToText)
и CapMonster Cloud

Решение капчи, установка на сайт и тестирование.

Стоимость решения текстовая CAPTCHA (ImageToText)

Тип капчи
Цена (РУБ)
Руб. arrow
₽ 23.41
1000 токенов
Вам достался «по наследству» сайт с подключённой капчей или другой защитой, но доступа к исходному коду нет? В такой ситуации возникают вопросы: какую именно систему защиты использует сайт, правильно ли она установлена и как проверить её работу?

В этой статье мы постарались дать ответы на все вопросы. А начать решение задачи нужно с определения того, какая система защиты используется. Для этого можно обратиться к списку популярных капч и систем антибот-защиты, где представлены визуальные примеры и ключевые признаки, которые могут помочь быстро определить, с чем вы имеете дело.

Если вы обнаружили, что на вашем сайте используется текстовая CAPTCHA (ImageToText), следующим шагом станет более подробное изучение её свойств и самой работы. Также в этой статье вы можете изучить инструкцию по подключению системы текстовая CAPTCHA (ImageToText), чтобы полностью разобраться, как она функционирует на вашем сайте. Это позволит не только понимать текущую защиту, но и грамотно планировать её поддержку.

Что такое ImageToText CAPTCHA
Что такое ImageToText CAPTCHA
ImageToText CAPTCHA — это классическая система защиты сайтов, основанная на распознавании текста с изображения. Пользователю необходимо ввести символы (буквы, цифры или их комбинацию), показанные на искажённой картинке. Такой подход позволяет отличить человека от автоматизированных скриптов. Используется для защиты форм регистрации, авторизации, отправки сообщений, комментариев и предотвращения массовых автоматических запросов.

Как решить ImageToText CAPTCHA через CapMonster Cloud

При тестировании форм с ImageToText CAPTCHA часто возникает необходимость проверить работу капчи и убедиться, что она корректно интегрирована.
Вы можете вручную протестировать подставленную на ваш сайт капчу:
  • Откройте страницу с формой и убедитесь, что капча отображается.
  • Попробуйте отправить форму без её прохождения — сервер должен выдать ошибку.
  • После успешного решения капчи — форма должна отправиться без ошибок.
Для автоматического распознавания капчи можно использовать специализированные сервисы, например, CapMonster Cloud — инструмент, который принимает параметры капчи, обрабатывает их на своих серверах и возвращает готовый ответ на задание капчи. Этот ответ можно подставить в соответствующее поле, чтобы пройти проверку без участия пользователя.

Работа с CapMonster Cloud через API обычно включает следующие шаги:

Создание задачи (Task)Создание задачи (Task)
arrow
Отправка запроса к APIОтправка запроса к API
arrow
Получение результатаПолучение результата
arrow
Подстановка токена на страницуПодстановка токена на страницу
arrow
Распознавание капчи с изображениями с использованием готовых библиотек
Сервис CapMonster Cloud предоставляет готовые библиотеки для удобной работы на языках Python, JavaScript (Node.js) и C#.
Python
JavaScript
C#
Решение, подстановка ответа и отправка формы
Пример на Node.js для полного цикла распознавания капчи на вашей веб-странице. Возможные подходы: использовать HTTP-запросы для получения HTML и параметров системы защиты, отправить ответ и обработать результат. Или, как в примере ниже, с помощью инструментов для автоматизации (например, Playwright) — открыть страницу, дождаться проверки, отправить параметры через клиент CapMonster Cloud, получить результат, подставить его в соответствующее поле (для тестирования вы можете использовать как правильные, так и некорректные данные) и увидеть результат.

  // 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"; // Укажите ваш API-ключ CapMonster Cloud

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

    // При необходимости можно проверить баланс
    const balance = await cmcClient.getBalance();
    console.log("Balance:", balance);

    // 1. Запускаем Playwright и открываем страницу с формой
    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. Получаем URL капчи со страницы (пример через селектор <img>)

    // 2. Получаем URL капчи со страницы (пример через селектор <img>)
    const captchaUrl = await page.getAttribute("#captcha-img", "src");

    // 3. Загружаем изображение и конвертируем в Base64
    const response = await fetch(captchaUrl);
    const imageBuffer = await response.arrayBuffer();
    const imageBase64 = Buffer.from(imageBuffer).toString('base64');

    // 4. Создаём запрос на решение ImageToText
    const imageToTextRequest = new ImageToTextRequest({
        body: imageBase64,
        CapMonsterModule: CapMonsterModules.YandexWave, // или другой модуль
        Case: true,
        numeric: 0,
        recognizingThreshold: 65,
        math: false
    });

    // 5. Получаем решение капчи
    const result = await cmcClient.Solve(imageToTextRequest);
    console.log("Captcha solution:", result.solution.text);

    // 6. Подставляем решение в поле формы и отправляем
    await page.fill("#captcha-input", result.solution.text); // Замените на ваш селектор
    await page.click("#submit-button"); // Замените на ваш селектор кнопки
    await page.waitForLoadState("networkidle");

    console.log("Форма отправлена с решением капчи");

    // 7. Закрываем браузер
    await browser.close();
}

solveImageToTextAndFillField().catch(console.error);


  
Как подключить текстовую капчу к своему сайту
Чтобы уверенно ориентироваться в работе капчи на вашем сайте, понимать логику её проверки, заново подключить или перенастроить, рекомендуем вам изучить этот раздел. В нём описан процесс подключения защиты — это поможет быстро разобраться во всех нюансах.

Шаг 1. Определитесь с подходом

Сначала нужно выбрать, как именно вы будете использовать капчу:

Вариант 1 — сторонний вендор

Подходит, если важна скорость внедрения и минимальная поддержка.

Плюсы:

  • Быстрое подключение
  • Готовая защита от ботов
  • Не нужно самостоятельно обновлять алгоритмы

Минусы:

  • Зависимость от внешнего сервиса
  • Ограниченная кастомизация

Вариант 2 — кастомная текстовая CAPTCHA

Подходит, если нужен полный контроль и интеграция под свои задачи.

Плюсы:

  • Полный контроль над логикой и дизайном
  • Нет внешних зависимостей
  • Можно адаптировать под конкретные сценарии

Минусы:

  • Нужно реализовать защиту от ботов самостоятельно
  • Требуется поддержка и доработка со временем

Шаг 2. Реализуйте генерацию капчи

Для вендора

  • Зарегистрируйтесь в сервисе
  • Получите ключи (site key / secret key)
  • Подключите скрипт на страницу с формой

Для кастомной капчи

  • Сгенерируйте случайную строку (цифры или буквы)
  • Отрисуйте её на изображении (Canvas, SVG или серверная генерация)
  • Добавьте искажения: шум, линии, поворот символов

Шаг 3. Покажите капчу пользователю

  • Вставьте изображение капчи рядом с формой
  • Добавьте поле для ввода текста
  • Реализуйте кнопку обновления капчи

Важно: каждая загрузка должна генерировать новый код.

Шаг 4. Передавайте данные на сервер

При отправке формы отправляйте:

  • Введённый пользователем текст
  • Идентификатор капчи или токен сессии

Для кастомной капчи код нельзя хранить на клиенте — только на сервере.

Шаг 5. Проверьте капчу на сервере

Вендор

  • Отправьте токен капчи на сервер вендора
  • Получите результат проверки (успешно / ошибка)

Кастомная капча

  • Сравните введённый текст с сохранённым значением
  • Учитывайте срок жизни капчи (например, 1–2 минуты)

Шаг 6. Примите решение

  • Если капча пройдена — выполните действие (логин, регистрация, отправка формы)
  • Если нет — покажите ошибку и сгенерируйте новую капчу

Шаг 7. Усильте защиту (рекомендуется)

Даже для текстовой капчи стоит добавить:

  • Ограничение количества попыток
  • Привязку к IP, сессии или cookie
  • Временные токены (одноразовые)
  • Логирование подозрительных действий
Background
Возможные ошибки и отладка
Bug Icon
Капча с изображениями не загружается
(Пустое изображение, 404/500 или ошибка генерации) — чаще всего причина в некорректной логике генерации. Убедитесь, что сервер корректно создаёт изображение и возвращает его клиенту, а путь к эндпоинту указан верно.
Bug Icon
Неверный или пустой код капчи
Проверьте, что пользовательский ввод действительно передаётся на сервер и сравнивается с сохранённым значением капчи.
Bug Icon
Несовпадение кодов при корректном вводе

Убедитесь, что:

  • Капча не пересоздаётся до проверки;
  • Код хранится отдельно для каждой сессии или токена;
  • Не истёк срок действия капчи.
Bug Icon
Истёкшее время жизни капчи
Увеличьте TTL капчи на сервере или обновляйте её при повторной попытке ввода.
Проверка устойчивости защиты
После подключения важно убедиться, что текстовая капча действительно защищает форму.
Рекомендации по безопасности и оптимизации
Храните правильный ответ капчи только на <span class="font-bold">сервере</span> (в памяти, Redis или БД), не передавайте его в клиент.
Используйте одноразовые токены или идентификаторы капчи.
Ограничьте количество попыток ввода для одной капчи.
Всегда используйте HTTPS для передачи данных формы и ответа капчи.
Логируйте ошибки генерации и проверки капчи (время, IP, причина отказа) — это упростит отладку и анализ атак.
Регулярно обновляйте алгоритм генерации (шрифты, искажения, шум).
Заключение

Если вам достался сайт с уже установленной капчей или другой системой защиты и при этом нет доступа к коду — ничего страшного! Определить, какая именно технология используется, достаточно легко. А для проверки корректности работы можно использовать сервис распознавания CapMonster Cloud в изолированной тестовой среде, чтобы убедиться, что механизм обработки токенов и логика проверки функционируют корректно.

В случае с капчей с изображениями — достаточно распознать систему, изучить её поведение и убедиться, что защита функционирует корректно. В статье мы показали, как определить капчу с изображениями (ComplexImage) и как подключить её или перенастроить, чтобы уверенно поддерживать защиту и контролировать её работу.

Conclusion
Полезные ссылки
DocIconДокументация CapMonster Cloud (работа с текстовой капчей)DocIconГайд, как создать свою собственную капчуDocIconРегистрация в сервисе CapMonster Cloud

Часто задаваемые вопросы о ImageToText CAPTCHA

  • Храните ответы CAPTCHA только на сервере, например в памяти, Redis или базе данных, и никогда не передавайте их клиенту.
  • Привязывайте каждую CAPTCHA к уникальной сессии или одноразовому токену, чтобы её нельзя было повторно использовать в других запросах.
  • Установите короткое время жизни, например 1–2 минуты, чтобы старые коды автоматически становились недействительными.
  • Немедленно аннулируйте CAPTCHA после успешной проверки, чтобы сделать её одноразовой.
  • Ограничьте количество попыток и генерируйте новую CAPTCHA после каждой неудачной попытки вместо повторного использования того же изображения.
  • Привязывайте каждую CAPTCHA к IP-адресу, сессии или cookie, чтобы предотвратить злоупотребления между запросами.
  • Логируйте ошибки генерации и проверки CAPTCHA, включая время, IP и причину отклонения, чтобы выявлять паттерны атак и корректировать пороги.
  • Всегда используйте HTTPS для защиты данных формы и ответов CAPTCHA при передаче.
  • Регулярно обновляйте настройки генерации заданий, такие как шрифты, искажения и шум, чтобы усложнить автоматическое решение.

Если изображение CAPTCHA пустое или не загружается, проверьте, что серверный endpoint генерации корректно создаёт изображение, правильно возвращает его клиенту и что URL endpoint указан верно.

Если пользователи вводят правильный код, но проверка не проходит, убедитесь, что CAPTCHA не перегенерируется между загрузкой страницы и отправкой формы.

Проверьте, что сохранённое значение CAPTCHA привязано к той же сессии или токену, который используется при проверке.

Убедитесь, что CAPTCHA не истекла до отправки формы — просроченный код вызовет несовпадение даже при правильном вводе.

Помимо обязательных полей type и body вы можете использовать пять необязательных параметров для тонкой настройки распознавания:

  • recognizingThreshold: Установите значение от 0 до 100 для управления порогом уверенности; меньшие значения принимают больше результатов, а большие — строже.
  • case: Установите true, если CAPTCHA чувствительна к регистру
  • numeric: Установите 1, если изображение содержит только цифры
  • math: Установите true, если изображение содержит математическое выражение
  • capMonsterModule: Укажите модуль распознавания, например yandex, чтобы повысить точность для поддерживаемых провайдеров. Полный список модулей см. в документации.

Важное исключение: при использовании модуля captcha_math через параметр capMonsterModule нельзя устанавливать math: true в том же запросе. Для всех остальных модулей, где изображение CAPTCHA содержит математическое выражение, установка math: true указывает решателю вычислить и вернуть числовой результат, а не исходную строку символов. Подробнее