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 v3 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 v3, 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.
GeeTest CAPTCHA v3 ist ein Schutzsystem für Websites vor automatisierten Aktionen, die der Ressource schaden können. Es hilft dabei, echte Nutzer von Bots zu unterscheiden und sorgt so für Sicherheit und einen stabilen Betrieb der Webressource.
.Beim Testen von Formularen mit GeeTest CAPTCHA v3 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.
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:
In der Anfrage zum Lösen von GeeTest CAPTCHA v3 müssen Sie die folgenden Parameter angeben:
type - GeeTestTask;
websiteURL - die Adresse der Seite, auf der der Nutzer das Captcha durchläuft. Die korrekte URL wird im Referer-Header beim Request an https://api-na.geetest.com/gettype.php übermittelt;
gt - der GeeTest-gt-Schlüsselidentifikator für die Domain;
challenge - vor jeder Aufgabe muss eine Anfrage gesendet werden, die einen neuen Wert für challenge zurückgibt, da ein veralteter Token sonst den Fehler ERROR_TOKEN_EXPIRED auslöst;
geetestApiServerSubdomain - Subdomain des Geetest-API-Servers (muss sich von api.geetest.com unterscheiden).
https://api.capmonster.cloud/createTask{
"clientKey":"YOUR_CAPMONSTER_CLOUD_API_KEY",
"task":
{
"type":"GeeTestTask",
"websiteURL":"https://www.example.com",
"gt":"022397c99c9f646f6477822485f30404",
"challenge":"7f044f48bc951ecfbfc03842b5e1fe59",
"geetestApiServerSubdomain":"api-na.geetest.com"
}
}{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}{
"errorId":0,
"status":"ready",
"solution": {
"challenge":"0f759dd1ea6c4wc76cedc2991039ca4f23",
"validate":"6275e26419211d1f526e674d97110e15",
"seccode":"510cd9735583edcb158601067195a5eb|jordan"
}
}// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { chromium } from 'playwright';
import { CapMonsterCloudClientFactory, ClientOptions, GeeTestRequest } from '@zennolab_com/capmonstercloud-client';
const API_KEY = 'your_capmonster_cloud_api_key';
const DEMO_PAGE = 'https://example.com';
(async () => {
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
console.log('Seite wird geöffnet...');
await page.goto(DEMO_PAGE, { waitUntil: 'networkidle' });
console.log('Captcha-Parameter werden abgerufen...');
const init = await page.evaluate(async () => {
// Request an den Server senden, um init-params für GeeTest zu erhalten; durch Ihren Wert ersetzen
const r = await fetch(`/api/v1/example/gee-test/init-params?t=${Date.now()}`);
return r.json();
});
console.log('Init params:', init);
console.log('Aufgabe für CapMonster Cloud wird erstellt...');
const cmc = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));
const solRaw = await cmc.Solve(new GeeTestRequest({ websiteURL: DEMO_PAGE, gt: init.gt, challenge: init.challenge }));
const sol = solRaw.solution || solRaw;
console.log('Captcha-Lösung:', sol);
console.log('Lösung in die versteckten Felder eintragen...');
await page.evaluate(s => {
['challenge','validate','seccode'].forEach(n => {
const el = document.querySelector(`input[name="geetest_${n}"]`);
if(el) el.value = s[n];
});
}, sol);
await page.click('button[data-action="test_action"]'); // durch Ihren Wert ersetzen
console.log('Verify-Request an den Server senden...');
const result = await page.evaluate(async () => {
const payload = {
geetest_challenge: document.querySelector('input[name="geetest_challenge"]')?.value,
geetest_validate: document.querySelector('input[name="geetest_validate"]')?.value,
geetest_seccode: document.querySelector('input[name="geetest_seccode"]')?.value
};
// durch Ihren Wert ersetzen
const r = await fetch('/api/v1/example/gee-test/verify', {
method:'POST',
headers:{'Content-Type':'application/json'},
body: JSON.stringify(payload)
});
return r.json();
});
console.log('Ergebnis der Captcha-Überprüfung:', result);
await page.waitForTimeout(3000);
await browser.close();
})();1. Registrieren Sie sich oder melden Sie sich in Ihrem GeeTest-Konto an.
2. Wechseln Sie zum Captcha Dashboard und wählen Sie CAPTCHA v3:

3. Klicken Sie auf +New Captcha, um ein neues Captcha zu erstellen. Geben Sie den Captcha-Namen (z. B. Produkt oder Projekt), die URL der Website, auf der das Captcha integriert wird, und den Nutzungskontext (z. B. Login / Registrierung / Passwort-Wiederherstellung usw.) an.
4. Sie erhalten eine eindeutige CAPTCHA ID und einen KEY. Diese können im Sicherheitsbereich konfiguriert werden.

5. Konfigurieren Sie die Serverseite (Server SDK):
Der Server arbeitet mit zwei APIs:
<?php
header('Content-Type: application/json');
const CAPTCHA_ID = '07df3141a35**********19a473d7c50';
const CAPTCHA_KEY = '543b19036ef********8e07d121b81e9';
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
function getJson($url) {
$res = @file_get_contents($url);
return $res ? json_decode($res, true) : null;
}
// API1: Initialisierung
if ($path === '/register') {
$data = getJson("https://api.geetest.com/register.php?gt=" . CAPTCHA_ID . "&json_format=1");
echo json_encode($data ? [
'gt' => CAPTCHA_ID,
'challenge' => $data['challenge'],
'success' => $data['success'] === 1,
'new_captcha' => true
] : ['success' => 0]);
exit;
}
// API2: Überprüfung
if ($path === '/validate' && $_SERVER['REQUEST_METHOD'] === 'POST') {
$req = json_decode(file_get_contents('php://input'), true);
$data = getJson("https://api.geetest.com/validate.php?" . http_build_query([
'seccode' => $req['geetest_seccode'] ?? '',
'challenge' => $req['geetest_challenge'] ?? '',
'gt' => CAPTCHA_ID,
'json_format' => 1
]));
echo json_encode(['success' => !empty($data['seccode'])]);
exit;
}
http_response_code(404);
echo json_encode(['error' => 'Not found']);
6. Binden Sie die Client-Seite ein (Client SDK):
Auf der Client-Seite laden Sie gt.js und rufen initGeetest auf, wobei Sie die Parameter vom Server (API1) übergeben. Beispiel mit ajax:
ajax({
url: "https://example.com/register",
type: "get",
dataType: "json",
success: function (data) {
initGeetest({
gt: data.gt,
challenge: data.challenge,
offline: !data.success,
new_captcha: true
}, function (captchaObj) {
captchaObj.appendTo("#captcha");
captchaObj.onSuccess(function () {
const result = captchaObj.getValidate();
ajax({
url: "https://example.com/validate",
type: "post",
contentType: "application/json",
data: JSON.stringify(result),
success: function(res) {
if (res.success) alert('CAPTCHA passed');
else alert('CAPTCHA failed');
}
});
});
});
}
});
Funktionsprüfung
Stellen Sie sicher, dass:
Failback (Fallback-Modus)
Wenn der GeeTest-Server nicht verfügbar ist:
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 v3 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 v3 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.