reCAPTCHA v2
и CapMonster Cloud

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

Стоимость решения reCAPTCHA V2

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

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

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

Что такое Google reCAPTCHA v2
Что такое Google reCAPTCHA v2
reCAPTCHA v2 — это система защиты от Google, предназначенная для предотвращения спама и других автоматических действий, которые могут навредить сайту. Она помогает отличить реальных пользователей от ботов и тем самым обеспечивает безопасность и стабильность работы веб-ресурса.
Background
Виды reCAPTCHA V2
reCAPTCHA v2
reCAPTCHA v2
Это классический вариант капчи с чекбоксом, где пользователю нужно подтвердить, что он человек. В некоторых случаях дополнительно появляется окно с заданием, например, выбрать определённые изображения.
reCAPTCHA v2 Invisible
reCAPTCHA v2 Invisible
Невидимая версия капчи, которая выполняет проверку автоматически, без участия пользователя, и не требует нажатия на галочку.
reCAPTCHA v2 Enterprise
reCAPTCHA v2 Enterprise
Корпоративная версия с дополнительными функциями.

Как решить reCAPTCHA v2 через CapMonster Cloud

При тестировании форм с reCAPTCHA V2 часто возникает необходимость проверить работу капчи и убедиться, что она корректно интегрирована.

Вы можете вручную протестировать подставленную на ваш сайт капчу.

  • Откройте страницу с формой и убедитесь, что капча отображается.
  • Попробуйте отправить форму без её прохождения — сервер должен выдать ошибку.
  • После успешного решения капчи — форма должна отправиться без ошибок.

Для автоматического распознавания капчи можно использовать специализированные сервисы, например, CapMonster Cloud — инструмент, который принимает параметры капчи, обрабатывает их на своих серверах и возвращает готовый токен. Этот токен можно подставить в форму, чтобы пройти проверку без участия пользователя.

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

Создание задачи (Task)Создание задачи (Task)
arrow
Отправка запроса к APIОтправка запроса к API
arrow
Получение результатаПолучение результата
arrow
Подстановка токена на страницуПодстановка токена на страницу
arrow
Распознавание reCAPTCHA v2 с использованием готовых библиотек
Сервис 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


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' });

  // Решение капчи
  const solution = await cmc.Solve(new RecaptchaV2Request({ websiteURL: TARGET_URL, websiteKey: WEBSITE_KEY }));
  const token = solution.solution.gRecaptchaResponse;

  // Вставляем токен и отправляем форму (замените на нужный селектор)
  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('Капча решена и форма отправлена!');
})();
Как подключить reCAPTCHA v2 к своему сайту
Чтобы уверенно ориентироваться в работе капчи на вашем сайте, понимать логику её проверки, заново подключить или перенастроить, рекомендуем вам изучить этот раздел. В нём описан процесс подключения защиты — это поможет быстро разобраться во всех нюансах.

1. Перейдите на страницу админ-панели reCAPTCHA.

2. Зарегистрируйте новый сайт.

Выберите тип капчи — reCAPTCHA v2 (с выполнением заданий или невидимый тип).

HowTo Connect image 1

3. Получите два ключа:

  • Site key — публичный ключ (используется на фронтенде);
  • Secret key — приватный ключ (используется на сервере для проверки).

HowTo Connect image 2

Вы можете открыть настройки, где, например, дополнительно можно указать домены для использования reCAPTCHA или выбрать уровень безопасности — от самого простого до самого надёжного. 

4. Пример кода для клиентской части. HTML-форма с reCAPTCHA v2 (фрагмент, который можно вставить в тело страницы):

HTML-форма с reCAPTCHA v2HTML-форма с reCAPTCHA v2
arrow

5. Выполните проверку ответа на серверной стороне.

Пример на PHPПример на PHP
arrow
Background
Возможные ошибки и отладка
Bug Icon
Неверный сайт или ключ
Капча не загружается или возвращает invalid-input-secret.
Bug Icon
Таймаут решения
Сервер не дождался ответа, увеличьте время ожидания.
Bug Icon
Пустой токен
Ошибка при передаче результата на страницу.
Bug Icon
Ответ success=false
Токен просрочен, повторно использован или подделан. Для диагностики включите логирование запросов и проверяйте поле error-codes в ответе от Google.
Проверка устойчивости защиты
После интеграции важно убедиться, что система действительно защищает сайт от автоматических действий.
Рекомендации по безопасности и оптимизации
Храните <span class="font-bold">Secret Key</span> только на сервере, не передавайте его в клиентскую часть.
Логируйте коды ошибок <span class="font-bold">(error-codes)</span>, чтобы понимать, почему конкретные проверки не прошли.
Добавьте внизу формы ссылки на <span class="font-bold">Политику конфиденциальности</span> и <span class="font-bold">Условия использования Google</span>, как требует лицензия.
Заключение

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

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

Conclusion

Часто задаваемые вопросы о reCAPTCHA v2

Чтобы отправить запрос на решение, выполните POST с JSON-телом на https://api.capmonster.cloud/createTask:

{
  "clientKey": "API_KEY",
  "task": {
    "type": "RecaptchaV2Task",
    "websiteURL": "[target_page_URL_with_reCAPTCHA]",
    "websiteKey": "[reCAPTCHA_website_key]"
  }
}
  • clientKey — API-ключ из вашего аккаунта CapMonster Cloud
  • task.type: укажите RecaptchaV2Task
  • task.websiteURL: URL страницы, на которой отображается капча
  • task.websiteKey: публичный sitekey, встроенный в HTML страницы

Для следующих шагов ознакомьтесь с документацией по решению reCAPTCHA.

Отправьте задачу запросом на https://api.capmonster.cloud/createTask с параметрами, описанными в предыдущем вопросе.

Опрашивайте https://api.capmonster.cloud/getTaskResult, передавая clientKey и taskId (возвращается в ответе createTask).

Когда поле status примет значение ready, в ответе появится строка gRecaptchaResponse — это и есть решённый токен.

Передайте токен на целевой сайт одним из следующих способов в зависимости от типа reCAPTCHA v2 и архитектуры сайта:

  • Стандартная DOM-инъекция: для типичных интеграций с чекбоксом вставьте токен в скрытое текстовое поле (например, document.getElementById("g-recaptcha-response").innerHTML = token;) с помощью метода page.evaluate() в Playwright (или аналога в Puppeteer/Selenium). Затем программно вызовите form.submit() или нажмите кнопку отправки.
  • JavaScript Callback (невидимая reCAPTCHA): если страница использует невидимую капчу с callback, найдите имя функции в атрибуте data-callback и вызовите её из скрипта автоматизации, передав токен аргументом (например, onVerifyCallback("TOKEN_STRING")).
  • Прямой HTTP-запрос: чтобы обойти рендеринг в браузере, перехватите нативный запрос отправки формы и передайте токен напрямую на backend целевого сервера в теле формы (например, g-recaptcha-response=TOKEN_STRING) через HTTP-клиент.

Целевой сервер извлекает токен из запроса и проверяет его через endpoint siteverify Google.

CapMonster Cloud обрабатывает оба режима одним и тем же API-вызовом. Для невидимого режима добавьте в запрос createTask параметр isInvisible: true. Чтобы корректно подтвердить решение reCAPTCHA, определите, каким способом сайт принимает токен. Эти способы описаны в предыдущем вопросе.

Наиболее частая причина — токен уже использован или истёк: токены reCAPTCHA v2 одноразовые и краткоживущие, поэтому любая задержка или повторная отправка приводят к ошибке. Начните с логирования сырого HTTP-ответа от https://www.google.com/recaptcha/api/siteverify — массив error-codes в ответе — основной диагностический сигнал.

Ещё две частые причины: invalid-input-secret означает неверный secret key на backend, а пустое поле g-recaptcha-response на сервере обычно указывает на то, что инъекция токена на фронтенде не сработала до отправки формы.

Также убедитесь, что websiteURL, переданный в CapMonster Cloud, совпадает с origin, на котором Google проверяет токен — несовпадение вызывает ошибку привязки к домену.

Для нетехнических пользователей: используйте браузерное расширение CapMonster Cloud (Chrome/Firefox). Оно позволяет тестировать поведение капчи прямо на странице и наблюдать процесс решения в реальном времени. Установите расширение, добавьте API-ключ и откройте страницу, защищённую reCAPTCHA.

Для QA и DevOps: выполните простой трёхшаговый тест:

  1. Отправьте форму без решения капчи — должен вернуться success: false.
  2. Отправьте форму с решённой капчей — запрос должен пройти успешно.
  3. Проведите нагрузочное тестирование (k6 или JMeter, 100+ RPS) и убедитесь, что просроченные или повторно использованные токены корректно отклоняются (например, HTTP 403).

Важно: siteverify всегда возвращает HTTP 200 — ошибки определяются полем success, а не HTTP-статусом.