В этой статье мы постарались дать ответы на все вопросы. А начать решение задачи нужно с определения того, какая система защиты используется. Для этого можно обратиться к списку популярных капч и систем антибот-защиты, где представлены визуальные примеры и ключевые признаки, которые могут помочь быстро определить, с чем вы имеете дело.
Если вы обнаружили, что на вашем сайте используется reCAPTCHA v2 Enterprise, следующим шагом станет более подробное изучение её свойств и самой работы. Также в этой статье вы можете изучить инструкцию по подключению системы reCAPTCHA v2 Enterprise, чтобы полностью разобраться, как она функционирует на вашем сайте. Это позволит не только понимать текущую защиту, но и грамотно планировать её поддержку.
При тестировании форм с reCAPTCHA v2 Enterprise часто возникает необходимость проверить работу капчи и убедиться, что она корректно интегрирована.
Вы можете вручную протестировать подставленную на ваш сайт капчу.
Для автоматического распознавания капчи можно использовать специализированные сервисы, например, CapMonster Cloud — инструмент, который принимает параметры капчи, обрабатывает их на своих серверах и возвращает готовый токен. Этот токен можно подставить в форму, чтобы пройти проверку без участия пользователя.
Работа с CapMonster Cloud через API обычно включает следующие шаги:
В запросе для решения reCAPTCHA v2 Enterprise необходимо указать следующие параметры:
type - RecaptchaV2EnterpriseTask;
websiteURL - адрес страницы, на которой решается капча;
websiteKey - ключ-идентификатор (sitekey), который указан на странице вашего сайта с капчей;
enterprisePayload - передавайте, если в вашей реализации виджета reCAPTCHA Enterprise содержится дополнительное поле s в структуре, которая передаётся в метод grecaptcha.enterprise.render вместе с sitekey;
pageAction - значение параметра action, которое передаётся виджетом ReCaptcha в Google. Значение по умолчанию: verify.
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV2EnterpriseTask",
"websiteURL": "https://mydomain.com/page-with-recaptcha-enterprise",
"websiteKey": "6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd",
"pageAction": "verify",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN"
}
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AFcWeA66ZARdA5te7acD9vSwWE2hEQ2-B2aqFxm455iMA-g-Jis..."
}
}
import { chromium } from 'playwright';
import { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2EnterpriseRequest } from '@zennolab_com/capmonstercloud-client';
(async () => {
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
// 2. Открываем страницу с капчей
await page.goto('https://example.com');
// 3. Создаём клиента CapMonster Cloud
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: '<your_capmonster_cloud_api_key>' })
);
// 4. Настраиваем запрос для решения капчи
const recaptchaRequest = new RecaptchaV2EnterpriseRequest({
websiteURL: page.url(),
websiteKey: '6Lf76sUnAAAAAIKLuWNyegRsFUfmI-3Lex3xT5N'
// enterprisePayload: { s: 'SOME_ADDITIONAL_TOKEN' } // Опциональный enterprise параметр
});
// 5. Решаем капчу через CapMonster
const solution = await cmcClient.Solve(recaptchaRequest);
const token = solution.solution.gRecaptchaResponse;
console.log('Токен капчи:', token);
// 6. Вставляем токен в скрытое поле
await page.evaluate((t) => {
const el = document.getElementById('g-recaptcha-response');
if (el) el.value = t;
}, token);
// 7. (Опционально) Сабмитим форму - замените на нужное значение
await page.click('button[data-action="submit"]');
await page.waitForTimeout(5000);
await browser.close();
})();Так как reCAPTCHA Enterprise работает через инфраструктуру Google Cloud, необходимо предварительно создать проект в его консоли:
1. Перейдите на Google Cloud Console.
2. В верхнем меню выберите существующий проект или нажмите New project.
3. Задайте имя проекта, укажите свою организацию и подтвердите создание.

4. Откройте страницу API: reCAPTCHA Enterprise API. Нажмите Enable (Включить).
5. Перейдите в консоль: Создание ключа. Нажмите Create Key (Создать ключ).

6. Задайте основные настройки:
Далее перейдите в Additional Settings, передвиньте ползунок Will you use challenges? и отметьте Checkbox Challenge.

7. Нажмите Создать. После этого вы получите ключ, который нужно будет добавить на ваш сайт для активации защиты.

8. Подключите скрипт.
<html>
<head>
<title>reCAPTCHA demo: Simple page</title>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
</head>
<body>
<form action="" method="POST">
<div class="g-recaptcha" data-sitekey="YOUR_SITEKEY" data-action="LOGIN"></div>
<br/>
<input type="submit" value="Submit">
</form>
</body>
</html>9. Проверка на сервере
Токен (g-recaptcha-response) отправляется на backend.
Он действует 2 минуты, поэтому проверяйте его сразу после получения! Для корректной и безопасной работы с API рекомендуется использовать официальные библиотеки Google Cloud:
<?php
require 'vendor/autoload.php';
// Подключение библиотек Google Cloud через Composer
use Google/Cloud/RecaptchaEnterprise/V1/RecaptchaEnterpriseServiceClient;
use Google/Cloud/RecaptchaEnterprise/V1/Event;
use Google/Cloud/RecaptchaEnterprise/V1/Assessment;
use Google/Cloud/RecaptchaEnterprise/V1/CreateAssessmentRequest;
use Google/Cloud/RecaptchaEnterprise/V1/TokenProperties/InvalidReason;
/**
* Проверка токена reCAPTCHA Enterprise и получение оценки риска.
*
* @param string $recaptchaKey Ключ reCAPTCHA сайта/приложения
* @param string $token Токен, полученный с клиента
* @param string $projectId ID проекта Google Cloud
* @param string $action Название действия, соответствующее токену
*/
function create_assessment(string $recaptchaKey, string $token, string $projectId, string $action): void {
$client = new RecaptchaEnterpriseServiceClient();
$projectName = $client->projectName($projectId);
// Создаём событие для оценки
$event = (new Event())->setSiteKey($recaptchaKey)->setToken($token);
$assessment = (new Assessment())->setEvent($event);
$request = (new CreateAssessmentRequest())->setParent($projectName)->setAssessment($assessment);
try {
$response = $client->createAssessment($request);
if (!$response->getTokenProperties()->getValid()) {
echo 'Токен недействителен: ' . InvalidReason::name($response->getTokenProperties()->getInvalidReason());
return;
}
if ($response->getTokenProperties()->getAction() === $action) {
echo 'Оценка риска: ' . $response->getRiskAnalysis()->getScore();
} else {
echo 'Действие в теге reCAPTCHA не совпадает с ожидаемым';
}
} catch (Exception $e) {
echo 'Ошибка при проверке reCAPTCHA: ' . $e->getMessage();
}
}
// Вызов функции с переменными
create_assessment(
'YOUR_SITE_KEY',
'YOUR_USER_RESPONSE_TOKEN',
'YOUR_PROJECT_ID',
'YOUR_RECAPTCHA_ACTION'
);
?>Если вам достался сайт с уже установленной капчей или другой системой защиты и при этом нет доступа к коду — ничего страшного! Определить, какая именно технология используется, достаточно легко. А для проверки корректности работы можно использовать сервис распознавания CapMonster Cloud в изолированной тестовой среде, чтобы убедиться, что механизм обработки токенов и логика проверки функционируют корректно.
В случае с reCAPTCHA v2 Enterprise — достаточно распознать систему, изучить её поведение и убедиться, что защита функционирует корректно. В статье мы показали, как определить reCAPTCHA v2 Enterprise и где найти инструкции по её подключению или перенастройке, чтобы уверенно поддерживать защиту и контролировать её работу.