logo
bars

GeeTest CAPTCHA v4
und CapMonster Cloud

Lösen der CAPTCHA, Einbindung in die Website und Tests.
Sie haben eine Website mit eingebauter Captcha- oder Bot-Schutzlösung übernommen, aber keinen Zugriff auf den Quellcode? Dann stellt sich schnell die Frage: Welche Lösung ist installiert, ist sie korrekt konfiguriert und wie lässt sie sich testen?

In diesem Artikel haben wir versucht, alle wichtigen Fragen zu beantworten. Der erste Schritt bei der Lösung der Aufgabe besteht darin festzustellen, welches Schutzsystem eingesetzt wird. Dazu können Sie die Liste beliebter Captchas und Anti-Bot-Schutzsysteme heranziehen, in der visuelle Beispiele und zentrale Merkmale aufgeführt sind, die Ihnen helfen, schnell zu erkennen, womit Sie es zu tun haben.

Wenn Sie feststellen, dass auf Ihrer Website GeeTest CAPTCHA v4 eingesetzt wird, besteht der nächste Schritt darin, seine Eigenschaften und Funktionsweise genauer zu untersuchen. Ebenfalls in diesem Artikel finden Sie eine Anleitung zur Integration von GeeTest CAPTCHA v4, damit Sie vollständig verstehen, wie das System auf Ihrer Website arbeitet. So können Sie nicht nur den aktuellen Schutz besser einschätzen, sondern auch seine Wartung vorausschauend planen.

Was ist GeeTest CAPTCHA v4
Was ist GeeTest CAPTCHA v4
GeeTest CAPTCHA v4 (Adaptive CAPTCHA/Behavior Verification) ist eine modernere Version im Vergleich zu v3 und dient dem Schutz von Websites vor automatisierten Aktionen, die der Ressource schaden können. Das System verfolgt das Verhalten und die Geräteeigenschaften des Seitenbesuchers und wählt eine passende Aufgabe aus: Für einen echten Menschen bleibt die Prüfung so einfach wie möglich – ein Klick auf das CAPTCHA-Widget genügt, während bei Verdacht auf Automatisierung eine komplexere Aufgabe angezeigt wird, die der Nutzer bestehen muss.
Background
Beispiele von GeeTest CAPTCHA v4
No CAPTCHA
No CAPTCHA
Die Überprüfung des Nutzers erfolgt hauptsächlich auf Basis seines Verhaltens und der Interaktion mit der Website, ohne dass Aufgaben gelöst werden müssen.
Icon CAPTCHA
Icon CAPTCHA
Auswahl von Bildern in der vorgegebenen Reihenfolge.
IconCrush CAPTCHA
IconCrush CAPTCHA
Vertauschen von Elementen, um drei identische Symbole in eine Reihe zu bringen (wie in „Match-3“-Puzzles).
Slide CAPTCHA
Slide CAPTCHA
Schieberegler zum Zusammensetzen eines Puzzles oder zum Abgleichen von Bildelementen.
Gobang CAPTCHA
Gobang CAPTCHA
Schieberegler zum Zusammensetzen eines Puzzles oder zum Abgleichen von Bildelementen.

Wie man GeeTest CAPTCHA v4 mit CapMonster Cloud löst

Beim Testen von Formularen mit GeeTest CAPTCHA v4 müssen Sie häufig prüfen, ob die Captcha korrekt eingebunden ist und funktioniert.

Sie können die auf Ihrer Seite eingebettete Captcha manuell testen.

  • Öffnen Sie die Formularseite und stellen Sie sicher, dass die Captcha angezeigt wird.
  • Versuchen Sie, das Formular ohne Lösung abzuschicken – der Server sollte einen Fehler melden.
  • Nach einer erfolgreichen Lösung muss das Formular ohne Probleme übermittelt werden.

Für automatisches Lösen können Sie Tools wie CapMonster Cloud einsetzen. Der Dienst nimmt die Captcha-Parameter entgegen, verarbeitet sie auf seinen Servern und liefert einen einsatzbereiten Token zurück. Diesen Token setzen Sie ins Formular ein, um die Prüfung ohne Benutzerinteraktion zu bestehen.

Die Arbeit mit CapMonster Cloud über die API umfasst in der Regel folgende Schritte:

Aufgabe erstellenAufgabe erstellen
arrow
API-Anfrage sendenAPI-Anfrage senden
arrow
Ergebnis empfangenErgebnis empfangen
arrow
Token auf der Seite einsetzenToken auf der Seite einsetzen
arrow
Erkennung von GeeTest CAPTCHA v4 mit fertigen Bibliotheken
Der Dienst CapMonster Cloud stellt fertige Bibliotheken für eine komfortable Arbeit mit Python, JavaScript (Node.js) und C# zur Verfügung.
Python
JavaScript
C#
Lösung, Token-Einfügung und Formularversand
Ein Beispiel in Node.js für den vollständigen Zyklus der CAPTCHA-Erkennung auf Ihrer Webseite. Mögliche Ansätze: Sie können HTTP-Anfragen verwenden, um das HTML und die CAPTCHA-Parameter zu erhalten, die Antwort zu senden und das Ergebnis zu verarbeiten; oder Sie nutzen Automatisierungs-Tools (z. B. Playwright), um die Seite zu öffnen, auf die CAPTCHA zu warten, die Parameter zu senden (für Tests können Sie sowohl korrekte als auch fehlerhafte Daten schicken), die Lösung über den CapMonster-Cloud-Client zu erhalten, den Token in das Formular einzutragen und das Ergebnis zu sehen.
// 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-Antwort abfangen (captcha_id, challenge usw. ermitteln)
  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. Seite laden
  console.log("Opening page:", pageUrl);
  await page.goto(pageUrl, { waitUntil: "domcontentloaded" });

  // 3. Warten, bis /load abgefangen wird
  console.log("Waiting for GeeTest /load...");
  while (!detected) {
    await page.waitForTimeout(500);
  }

  // 4. Aufgabe an CapMonster Cloud senden
  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. Eigene Werte in /verify einsetzen, um eine erfolgreiche Antwort zu erhalten
  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. Benutzeraktion imitieren (z. B. auf den CAPTCHA-Button klicken)
  console.log("Waiting for captcha interaction...");
  await page.waitForTimeout(3000);

  // Beispiel für den Aufruf der Verifizierung:
  try {
    await page.click('.geetest_btn'); // CAPTCHA-Schaltfläche
    console.log("Clicked captcha button");
  } catch {
    console.log("Captcha button not found");
  }

  // Manchmal muss verify() manuell aufgerufen werden:
  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"; // Durch eine Seite mit GeeTest v4 ersetzen
  const res = await solveGeetestV4(url);
  console.log("FINISHED:", res);
})();
Wie Sie GeeTest CAPTCHA v4 in Ihre Website integrieren
Damit Sie sich sicher in der Funktionsweise der CAPTCHA auf Ihrer Website zurechtfinden, die Logik der Prüfung verstehen und die Integration erneut vornehmen oder anpassen können, empfehlen wir Ihnen, diesen Abschnitt zu lesen. Hier wird der Einrichtungsprozess des Schutzes beschrieben – so können Sie alle Details schnell nachvollziehen.

1. Registrieren Sie sich oder melden Sie sich in Ihrem GeeTest-Konto an.

2. Öffnen Sie das Captcha Dashboard und wählen Sie Behavior Verification v4:

HowTo Connect image 1

3. Klicken Sie im Dashboard auf + Create application.

4. Geben Sie APP/website name an (den Namen der Website oder Anwendung, auf der die CAPTCHA verwendet wird), Address (die Hauptdomain der Website, auf der die CAPTCHA eingebunden wird, z. B. https://example.com) und Industry (die Kategorie der Website, z. B. „E-commerce“, „Social Media“ usw.) und klicken Sie auf Confirm.

5. Klicken Sie neben dem Namen der soeben erstellten Anwendung auf Add events. Geben Sie Event an – den Namen des konkreten Szenarios (Ereignisses), in dem die CAPTCHA verwendet wird, z. B. login, register usw.; Device – die Plattform (z. B. Web/Wap); Business types – den Typ des Einsatzszenarios der CAPTCHA (z. B. Sign-up / Sign-in – Registrierung / Anmeldung). Klicken Sie auf Add.

6. Nun erscheinen im persönlichen Bereich die ID (wird im Client und auf dem Server verwendet) und der Key (wird auf dem Server zur Prüfung verwendet) für die erstellte CAPTCHA:

HowTo Connect image 2

7. Binden Sie die Client-Seite ein

Binden Sie das Skript ein:

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

Initialisieren Sie die CAPTCHA:

initGeetest4(
  { captchaId: "Your CaptchaId" },
  function (captcha) {
    captcha.appendTo("#captcha"); // in ein Element der Seite einfügen
  }
);

Wichtig:

  • Die CAPTCHA muss beim Laden der Seite initialisiert werden, sonst kann sie das Benutzerverhalten nicht verfolgen.
  • Wenn Sie mehrere CAPTCHAs auf einer Seite verwenden, rufen Sie initGeetest4 für jede einzeln auf.
  • Wenn Sie die CAPTCHA in einem iframe einsetzen, fügen Sie sandbox="allow-scripts allow-popups" hinzu.

CodebeispielCodebeispiel
arrow

8. Richten Sie die Serverseite ein.

Wenn der Benutzer die CAPTCHA im Frontend besteht, wird ein Parametersatz generiert. Diese Parameter müssen an das Backend gesendet und anschließend über die sekundäre GeeTest-API geprüft werden, um zu bestätigen, dass die Prüfung erfolgreich war.

Sekundäre Verifizierungs-API:

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

  • Methode: GET/POST
  • Content-Type: application/x-www-form-urlencoded
  • Antwort: JSON

Wichtigste Anfrageparameter

  • lot_number – Seriennummer der Prüfung
  • captcha_output – Prüfdaten
  • pass_token – Prüftoken
  • gen_time – Zeitpunkt der Generierung der Prüfung
  • captcha_id – CAPTCHA-ID
  • sign_token – Signatur für die Verifizierung

Beispiel einer erfolgreichen AntwortBeispiel einer erfolgreichen Antwort
arrow

Beispiel für die CAPTCHA-Prüfung in PHPBeispiel für die CAPTCHA-Prüfung in PHP
arrow

Background
Mögliche Fehler und Debugging
Bug Icon
Ungültige Parameter
Das CAPTCHA wird nicht angezeigt oder gibt Fehler wie invalid-captcha-id / invalid-challenge zurück. Überprüfen Sie, ob aktuelle captcha_id- und challenge-Werte verwendet werden, die Ihrer Seite entsprechen. Diese Parameter werden bei jeder /load-Anfrage dynamisch generiert.
Bug Icon
Zeitüberschreitung beim Lösen
Die CAPTCHA-Lösung wurde nicht rechtzeitig empfangen. Erhöhen Sie das Timeout bei der Nutzung automatischer Löse-Dienste (z. B. CapMonster Cloud) und stellen Sie sicher, dass die Verbindung zur API stabil ist.
Bug Icon
Leere Felder
captcha_output, pass_token oder lot_number werden nicht an die Seite oder in die Prüfanfrage übergeben. Stellen Sie sicher, dass diese Werte korrekt in versteckte Formularfelder oder in den Request-Body an Ihren Server eingetragen werden.
Bug Icon
Antwort success=false
Der Token ist abgelaufen, wurde erneut verwendet oder ist gefälscht. Aktivieren Sie das Logging aller Anfragen und Antworten des Prüfservers, um Felder wie error_code oder error_msg nachverfolgen zu können.
Tests der Schutzstabilität
Stellen Sie nach der Integration sicher, dass das System die Website wirklich vor automatisierten Aktionen schützt.
Tipps zu Sicherheit und Optimierung
Bewahren Sie den <b>CAPTCHA-Schlüssel (geheimer KEY) ausschließlich auf dem Server auf</b> und geben Sie ihn nicht an den Client weiter.
Protokollieren Sie bei der Prüfung die Fehlercodes (<b>error-codes</b> oder Antwortfelder des Servers), um die Ursachen fehlgeschlagener Prüfungen nachvollziehen zu können.
Fügen Sie am unteren Rand des Formulars Links zur <b>Datenschutzerklärung</b> und zu den <b>Nutzungsbedingungen von GeeTest</b> hinzu, sofern dies durch Lizenz oder interne Richtlinien erforderlich ist.
Fazit

Wenn Sie eine Website übernommen haben, auf der bereits ein Captcha oder ein anderes Schutzsystem installiert ist und Sie keinen Zugriff auf den Code haben, ist das kein Problem! Es ist ziemlich einfach festzustellen, welche Technologie genau verwendet wird. Und um die korrekte Funktionsweise zu überprüfen, können Sie den Erkennungsdienst CapMonster Cloud in einer isolierten Testumgebung nutzen, um sicherzustellen, dass der Mechanismus zur Tokenverarbeitung und die Prüflogik ordnungsgemäß funktionieren.

Im Fall von GeeTest CAPTCHA v4 reicht es aus, das System zu erkennen, sein Verhalten zu analysieren und sich zu vergewissern, dass der Schutz korrekt arbeitet. In diesem Artikel haben wir gezeigt, wie Sie GeeTest CAPTCHA v4 identifizieren und wo Sie Anleitungen für die Einbindung oder Neukonfiguration finden, damit Sie den Schutz zuverlässig betreiben und seine Arbeit unter Kontrolle halten können.

Conclusion
Nützliche Links
DocIconGeeTest-v4-DokumentationDocIconEntwicklerkonsole in GeeTest v4DocIconCapMonster-Cloud-Dokumentation (Arbeit mit GeeTest v4)DocIconKonto in GeeTest erstellenDocIconKonto in CapMonster Cloud erstellen