logo
bars

GeeTest CAPTCHA v4
и CapMonster Cloud

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

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

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

Что такое GeeTest CAPTCHA v4
Что такое GeeTest CAPTCHA v4
GeeTest CAPTCHA v4 (Adaptive CAPTCHA/Behavior Verification) — более современная версия по сравнению с v3, предназначенная для защиты сайтов от автоматизированных действий, которые могут нанести вред ресурсу. Система отслеживает поведение и характеристики устройства посетителя сайта и подбирает подходящее задание: для реального человека проверка будет максимально простой — достаточно одного клика по виджету капчи, а при подозрении на автоматизацию пользователю выдаётся более сложное задание, которое нужно пройти.
Background
Виды GeeTest CAPTCHA v4
No CAPTCHA
No CAPTCHA
Проверка пользователя происходит преимущественно на основе поведения и взаимодействия с сайтом, без выполнения заданий.
Icon CAPTCHA
Icon CAPTCHA
Выбор изображений в указанном порядке.
IconCrush CAPTCHA
IconCrush CAPTCHA
Поменять местами элементы, чтобы выстроить три одинаковые иконки в ряд (как в головоломках «три в ряд»).
Slide CAPTCHA
Slide CAPTCHA
Слайдер для сборки пазла или сопоставления элементов изображения.
Gobang CAPTCHA
Gobang CAPTCHA
Слайдер для сборки пазла или сопоставления элементов изображения.

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

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

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

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

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

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

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

import { chromium } from "playwright";
import {
  CapMonsterCloudClientFactory,
  ClientOptions,
  GeeTestRequest
} from "@zennolab_com/capmonstercloud-client";

const CAPMONSTER_API_KEY = "YOUR_CAPMONSTER_API_KEY";

async function solveGeetestV4(pageUrl) {
  const browser = await chromium.launch({ headless: false });
  const context = await browser.newContext({ viewport: null });
  const page = await context.newPage();

  let detected = null;
  let solutionObj = null;

  // 1. Перехватываем ответ /load (определяем captcha_id, challenge и т.д.)
  page.on("response", async (response) => {
    const url = response.url();
    if (!url.startsWith("https://gcaptcha4.geetest.com/load?")) return;

    const params = new URLSearchParams(url.split("?")[1] || "");
    const captchaId = params.get("captcha_id");
    const challenge = params.get("challenge");
    const captchaType = params.get("captcha_type");

    if (captchaId && challenge) {
      detected = { captchaId, challenge, captchaType };
      console.log("Detected GeeTest v4 load:", detected);
    }
  });

  // 2. Загружаем страницу
  console.log("Opening page:", pageUrl);
  await page.goto(pageUrl, { waitUntil: "domcontentloaded" });

  // 3. Ждём, пока поймаем /load
  console.log("Waiting for GeeTest /load...");
  while (!detected) {
    await page.waitForTimeout(500);
  }

  // 4. Отправляем задачу в CapMonster Cloud
  console.log("Sending task to CapMonster...");
  const cmc = CapMonsterCloudClientFactory.Create(
    new ClientOptions({ clientKey: CAPMONSTER_API_KEY })
  );

  const task = new GeeTestRequest({
    websiteURL: pageUrl,
    gt: detected.captchaId,
    challenge: detected.challenge,
    version: "4",
    initParameters: {
      riskType: detected.captchaType || "slide"
    }
  });

  const solveRes = await cmc.Solve(task);
  const sol = solveRes.solution || solveRes;

  solutionObj = {
    captcha_id: sol.captcha_id || detected.captchaId,
    captcha_output: sol.captcha_output,
    lot_number: sol.lot_number,
    pass_token: sol.pass_token
  };

  console.log("Got solution from CapMonster:", solutionObj);

  // 5. Подставляем свои зачения в /verify для возврата успешного ответа
  await page.route("https://gcaptcha4.geetest.com/verify*", async (route) => {
    console.log("Intercepted /verify, injecting fake success...");
    const body = `geetest_${Date.now()}(${JSON.stringify({
      status: "success",
      data: {
        result: "success",
        seccode: {
          captcha_id: solutionObj.captcha_id,
          captcha_output: solutionObj.captcha_output,
          lot_number: solutionObj.lot_number,
          pass_token: solutionObj.pass_token
        }
      }
    })})`;

    await route.fulfill({
      status: 200,
      contentType: "application/javascript",
      body
    });
  });

  // 6. Имитируем действие пользователя (например, кликаем по кнопке капчи)
  console.log("Waiting for captcha interaction...");
  await page.waitForTimeout(3000);

  // Пример вызова верификации:
  try {
    await page.click('.geetest_btn'); // кнопка капчи
    console.log("Clicked captcha button");
  } catch {
    console.log("Captcha button not found");
  }

  // Иногда нужно вызвать verify() вручную:
  await page.evaluate(() => {
    if (window.initGeetest4 && typeof verify === "function") {
      verify();
    }
  });

  console.log("Waiting for verification request...");
  await page.waitForTimeout(3000);

  await browser.close();

  return { detected, solution: solutionObj };
}
(async () => {
  const url = "https://example.com"; // замените на страницу с GeeTest v4
  const res = await solveGeetestV4(url);
  console.log("FINISHED:", res);
})();
Как подключить GeeTest CAPTCHA v4 к своему сайту
Чтобы уверенно ориентироваться в работе капчи на вашем сайте, понимать логику её проверки, заново подключить или перенастроить, рекомендуем вам изучить этот раздел. В нём описан процесс подключения защиты — это поможет быстро разобраться во всех нюансах.

1. Зарегистрируйтесь или войдите в свой GeeTest аккаунт.

2. Перейдите в Captcha Dashboard, выберите Behavior Verification v4:

HowTo Connect image 1

3. В панели управления нажмите + Create application.

4. Укажите APP/website name (название сайта или приложения, где будет использоваться капча), Address (основной домен сайта, где будет установлена капча (например, https://example.com), Industry (категория сайта, например, “E-commerce”, “Social Media” и др.), нажмите Confirm.

5. Нажмите Add events рядом с названием только что созданного приложения. Укажите Event – название конкретного сценария (события), где будет использоваться капча: например, login, register и т.д.; Device – платформа (например, Web/Wap); Business types – тип сценария применения капчи (например, Sign-up / Sign-in — регистрация / вход). Нажмите Add.

6. Теперь у вас в личном кабинете появятся ID (используется на клиенте и на сервере) и Key (используется на сервере для проверки) созданной капчи:

HowTo Connect image 2

7. Подключите клиентскую часть

Подключите скрипт:

<script src="https://static.geetest.com/v4/gt4.js"></script>

Инициализируйте CAPTCHA:

initGeetest4(
  { captchaId: "Your CaptchaId" },
  function (captcha) {
    captcha.appendTo("#captcha"); // вставляем в элемент страницы
  }
);

Важно:

  • CAPTCHA нужно инициализировать при загрузке страницы, иначе она не сможет отслеживать поведение пользователя.
  • Для нескольких CAPTCHA на одной странице вызывайте initGeetest4 отдельно для каждой.
  • Если используете CAPTCHA в iframe, добавьте sandbox="allow-scripts allow-popups".

Пример кодаПример кода
arrow

8. Настройте серверную часть.

Когда пользователь проходит CAPTCHA на фронтенде, генерируется набор параметров. Эти параметры нужно отправить на бэкенд и затем проверить через вторичный API GeeTest, чтобы подтвердить, что проверка успешна.

Вторичный API верификации:

url
http://gcaptcha4.geetest.com/validate

  • Метод: GET/POST
  • Content-Type: application/x-www-form-urlencoded
  • Ответ: JSON

Основные параметры запроса

  • lot_number - Серийный номер проверки
  • captcha_output - Данные проверки
  • pass_token - Токен проверки
  • gen_time - Время генерации проверки
  • captcha_id - ID CAPTCHA
  • sign_token - Подпись для верификации

Пример успешного ответаПример успешного ответа
arrow

Пример проверки CAPTCHA на PHPПример проверки CAPTCHA на PHP
arrow

Background
Возможные ошибки и отладка
Bug Icon
Неверные параметры
Капча не отображается или возвращает ошибки вроде invalid-captcha-id / invalid-challenge. Проверьте, что используются актуальные captcha_id и challenge, соответствующие вашей странице. Эти параметры динамически генерируются при каждом запросе /load.
Bug Icon
Таймаут решения
Решение капчи не было получено вовремя. Увеличьте время ожидания при использовании сервисов автоматического решения (например, CapMonster Cloud) и убедитесь, что соединение с API стабильно.
Bug Icon
Пустые поля
captcha_output, pass_token или lot_number не переданы на страницу или в запросе проверки. Убедитесь, что эти значения корректно подставляются в скрытые поля формы или тело запроса к вашему серверу.
Bug Icon
Ответ success=false
Токен устарел, был повторно использован или поддельный. Включите логирование всех запросов и ответов от сервера проверки, чтобы отслеживать поля вроде error_code или error_msg.
Проверка устойчивости защиты
После интеграции важно убедиться, что система действительно защищает сайт от автоматических действий.
Рекомендации по безопасности и оптимизации
Храните <b>ключ капчи (секретный KEY) только на сервере</b>, не передавайте его в клиентскую часть.
Логируйте коды ошибок при проверке (<b>error-codes</b> или поля ответа сервера), чтобы понимать причины неудачных проверок.
Добавьте внизу формы ссылки на <b>Политику конфиденциальности</b> и <b>Условия использования GeeTest</b>, если требуется по лицензии или внутренним требованиям.
Заключение

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

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

Conclusion
Полезные ссылки
DocIconДокументация GeeTest v4DocIconКонсоль разработчика в GeeTest v4DocIconДокументация CapMonster Cloud (работа с GeeTest v4)DocIconСоздание аккаунта в GeeTestDocIconСоздание аккаунта в CapMonster Cloud