reCAPTCHA v3
и CapMonster Cloud

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

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

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

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

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

Что такое Google reCAPTCHA v3
Что такое Google reCAPTCHA v3
reCAPTCHA v3 — это невидимая защита от Google, которая отличает реальных пользователей от ботов без проверки “Я не робот”. На странице работает скрытый скрипт, анализирующий поведение посетителя сайта и выдающий оценку доверия (score) от 0.0 до 1.0. Разработчик задаёт порог, ниже которого может требоваться дополнительная проверка или блокировка, обеспечивая защиту без лишних действий со стороны пользователя.

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

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

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

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

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

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

Создание задачи (Task)Создание задачи (Task)
arrow
Отправка запроса к APIОтправка запроса к API
arrow
Получение результатаПолучение результата
arrow
Подстановка токена на страницуПодстановка токена на страницу
arrow
Распознавание reCAPTCHA v3 с использованием готовых библиотек
Сервис CapMonster Cloud предоставляет готовые библиотеки для удобной работы на языках Python, JavaScript (Node.js) и C#.
Python
JavaScript
C#
Решение, подстановка токена и отправка формы
Пример на Node.js для полного цикла распознавания капчи на вашей веб-странице. Возможные подходы: использовать HTTP-запросы для получения HTML и параметров капчи, отправить ответ и обработать результат; или с помощью инструментов для автоматизации (например, Playwright) — открыть страницу, дождаться капчи, отправить параметры (для тестирования вы можете отправить как правильные, так и некорректные данные), получить решение через клиент CapMonster Cloud, подставить токен в форму и увидеть результат.
const { chromium } = require('playwright');
const { 
  CapMonsterCloudClientFactory, 
  ClientOptions, 
  RecaptchaV3ProxylessRequest 
} = require('@zennolab_com/capmonstercloud-client');

(async () => {
  const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta'; // URL вашей страницы с капчей
  const SITE_KEY = '6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob';
  const API_KEY = 'your_capmonster_cloud_api_key'; // Укажите ваш API-ключ CapMonster Cloud

  // Создаём клиента CapMonster
  const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));

  // Открываем браузер
  const browser = await chromium.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });

  // Настройка задачи reCAPTCHA v3
  const recaptchaRequest = new RecaptchaV3ProxylessRequest({
    websiteURL: TARGET_URL,
    websiteKey: SITE_KEY,
    minScore: 0.6,
    pageAction: 'myverify', // соответствие action на странице
  });

  // Решаем капчу
  const solution = await cmcClient.Solve(recaptchaRequest);
  const token = solution.solution?.gRecaptchaResponse;

  if (!token) {
    console.error('Токен пустой, проверьте sitekey и URL');
    await browser.close();
    return;
  }

  console.log('Токен получен:', token);

  // Подставляем токен в скрытое поле и эмулируем клик на кнопку 
  // Замените на нужные селекторы
  await page.evaluate((t) => {
    const input = document.querySelector('#v3_token');
    if (input) input.value = t;

    const form = document.querySelector('#v3_form');
    if (form) form.submit();
  }, token);

  console.log('Токен вставлен и форма отправлена');

  await page.waitForTimeout(5000);
  await browser.close();
})();
Как подключить reCAPTCHA v3 к своему сайту
Чтобы уверенно ориентироваться в работе капчи на вашем сайте, понимать логику её проверки, заново подключить или перенастроить, рекомендуем вам изучить этот раздел. В нём описан процесс подключения защиты — это поможет быстро разобраться во всех нюансах.

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

2. Зарегистрируйте новый сайт и выберите тип капчи — reCAPTCHA v3

HowTo Connect image 1

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

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

HowTo Connect image 2

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

4. Примеры кода для клиентской части

Самый простой способ использовать reCAPTCHA v3 — подключить JavaScript API и добавить атрибуты к кнопке.

Подключение API:

<script src="https://www.google.com/recaptcha/api.js"></script>

Функция обратного вызова для формы:

<script>
  function onSubmit(token) {
    document.getElementById("form").submit();
  }
</script>

Кнопка с атрибутами reCAPTCHA:

<button class="g-recaptcha" 
        data-sitekey="reCAPTCHA_sitekey" 
        data-callback='onSubmit' 
        data-action='submit'>Submit</button>

Для полного контроля используйте grecaptcha.execute с параметром render:

Подключение API с ключом:

<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>

Программный вызов:

<script>
  function onClick(e) {
    e.preventDefault();
    grecaptcha.ready(function() {
      grecaptcha.execute('reCAPTCHA_sitekey', {action: 'submit'}).then(function(token) {
          // Отправьте токен на сервер для проверки
      });
    });
  }
</script>

Токен следует сразу отправлять на сервер для верификации.

Важные замечания:

  • Срок действия токена: токен, полученный от reCAPTCHA v3, действителен в течение 2 минут. Убедитесь, что вы отправляете его на сервер в течение этого времени.
  • Проверка на сервере: после получения токена на сервере, отправьте POST-запрос на https://www.google.com/recaptcha/api/siteverify с параметрами:
    – secret: ваш секретный ключ
    – response: токен, полученный от клиента
    – remoteip (необязательно): IP-адрес пользователя
  • Сервер Google вернёт JSON-ответ, содержащий информацию о результате проверки.

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

Пример на PHPПример на PHP
arrow

Примечания:

  • Убедитесь, что на клиенте токен отправляется в скрытом поле формы с именем recaptcha-token:
    • <input type="hidden" name="recaptcha-token" id="recaptcha-token">

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

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

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

Conclusion

Частые вопросы о reCAPTCHA v3

CapMonster Cloud предоставляет официальные клиентские библиотеки для Python, JavaScript (Node.js) и C#. Эти библиотеки упрощают интеграцию reCAPTCHA v3 и позволяют не реализовывать HTTP-запросы вручную.

Например, в Node.js можно использовать пакет @zennolab_com/capmonstercloud-client, который позволяет получить токен и вставить его в форму всего в несколько строк кода.

Если для вашего языка нет отдельной библиотеки, используйте универсальный REST API (createTask / getTaskResult). Он работает с любым HTTP-клиентом, включая curl, requests, axios и другие.

Полная структура запроса доступна в документации API.

Параметр minScore принимает значения от 0.1 до 0.9 и сообщает CapMonster Cloud минимальный trust score, который должен быть у возвращаемого токена. В качестве разумной стартовой точки можно использовать 0.7. Слишком высокое значение (например, 0.9) повышает вероятность ошибок решения; слишком низкое может возвращать токены со score, который ваш сервер всё равно должен отклонять. Подбирайте значение по реальной статистике отказов в тестовой среде.

Токен, полученный от reCAPTCHA v3, действителен примерно 2 минуты. Автоматизация должна отправить токен на сервер в течение этого окна; после истечения срока endpoint Google siteverify вернёт success: false. Выполняйте решение как можно ближе к отправке формы и не кэшируйте токены между запросами.

Чтобы вставить токен reCAPTCHA v3, найдите скрытое поле ответа (обычно textarea или input с ID g-recaptcha-response) и запишите туда токен, полученный от сервиса решения CAPTCHA. Ниже примеры для трёх фреймворков автоматизации.

Playwright / Puppeteer (Node.js)

const token = "YOUR_TOKEN";
await page.evaluate((t) => {
  document.getElementById('g-recaptcha-response').value = t;
}, token);
await page.click('#submit-btn');

Selenium (Python)

token = "YOUR_TOKEN"
driver.execute_script(f"document.getElementById('g-recaptcha-response').value = '{token}';")
driver.find_element("id", "submit-btn").click()

Некоторые сайты используют callback-функции для проверки токена. Если форма не отправляется, найдите имя функции через консоль (___grecaptcha_cfg.clients) и вызовите её вручную:

// Example of calling a callback in Playwright/Puppeteer
await page.evaluate((t) => { window.onSuccessCallback(t); }, token);

Ответ Google success: true означает только то, что токен валиден. Ваш backend всё равно может отклонить запрос, если score токена ниже настроенного порога.

Ещё одна частая причина — несовпадение action. Токен должен проверяться с тем же action, который использовался при создании задачи.

Для диагностики:

  • проверьте поле score в ответе siteverify;
  • убедитесь, что значение action совпадает;
  • изучите error-codes, если success равен false.

Если success равен true, массив error-codes обычно пустой, поэтому основные поля для проверки — score и action.