logo
bars

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

Решение капчи, установка на сайт и тестирование.
Вам достался «по наследству» сайт с подключённой капчей или другой защитой, но доступа к исходному коду нет? В такой ситуации возникают вопросы: какую именно систему защиты использует сайт, правильно ли она установлена и как проверить её работу?

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

Если вы обнаружили, что на вашем сайте используется ImageToText, следующим шагом станет более подробное изучение её свойств и самой работы. Также в этой статье вы можете изучить инструкцию по подключению системы 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 капчи на сервере или обновляйте её при повторной попытке ввода.
Проверка устойчивости защиты
После интеграции важно убедиться, что система действительно защищает сайт от автоматических действий.
Рекомендации по безопасности и оптимизации
Храните правильный ответ капчи только на <b>сервере</b> (в памяти, Redis или БД), не передавайте его в клиент.
Используйте одноразовые токены или идентификаторы капчи.
Ограничьте количество попыток ввода для одной капчи.
Всегда используйте HTTPS для передачи данных формы и ответа капчи.
Логируйте ошибки генерации и проверки капчи (время, IP, причина отказа) — это упростит отладку и анализ атак.
Регулярно обновляйте алгоритм генерации (шрифты, искажения, шум).
Заключение

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

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

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