Explainers

Deep Dive zur reCAPTCHA Enterprise Assessment API

reCAPTCHA Enterprise ist der Premium-CAPTCHA-Dienst von Google, der reCAPTCHA v3 um detaillierte Risikoanalysen, Bewertungsgründe, Betrugserkennungssignale und Funktionen zur Kontoverteidigung erweitert. Im Gegensatz zur kostenlosen Standardversion, die nur eine Punktzahl und eine Aktion zurückgibt, bietet Enterprise erklärbare Bewertungen mit spezifischen Risikofaktoren. Dieser Leitfaden behandelt die Enterprise Assessment API-Architektur, die Antwortstruktur und den Umgang mit unternehmensgeschützten Websites in der Automatisierung.


Enterprise vs. Standard-reCAPTCHA

Funktion reCAPTCHA v3 (kostenlos) reCAPTCHA Enterprise
Wertung 0,0–1,0 Punkte 0,0–1,0 Punkte + Punktegründe
Risikoanalyse Einfach Ausführlich (Betrugssignale, Kontoinformationen)
Bewertungsgründe Nicht bereitgestellt Spezifische Gründe, die die Punktzahl erklären
Kontoverteidiger Nein Ja (verfolgt den Kontolebenszyklus)
WAF-Integration Nein Ja (Cloudflare, Fastly, F5)
Express-Bewertung Nein Ja (nur serverseitig, kein JS)
Erkennung von Passwortlecks Nein Ja
Preise Kostenlos (1 Mio. Bewertungen/month) 1 $ pro 1.000 Bewertungen (0–1 Mio. kostenlos)
API-Endpunkt google.com/recaptcha/api/siteverify recaptchaenterprise.googleapis.com

Ablauf der Enterprise Assessment API

Client-side:

  1. Load reCAPTCHA Enterprise script
  2. Call grecaptcha.enterprise.execute(SITE_KEY, {action: 'LOGIN'})
  3. Receive token
  4. Send token to your backend

Server-side:

  1. Create assessment via Enterprise API
  2. Receive detailed risk analysis
  3. Make access decision based on score + reasons
  4. Optionally annotate the assessment (report fraud/legitimate)

Clientseitige Integration

JavaScript-SDK

<script src="https://www.google.com/recaptcha/enterprise.js?render=SITE_KEY"></script>
<script>
    grecaptcha.enterprise.ready(function() {
        grecaptcha.enterprise.execute('SITE_KEY', { action: 'LOGIN' })
            .then(function(token) {
                // Send token to backend
                fetch('/api/verify', {
                    method: 'POST',
                    headers: { 'Content-Type': 'application/json' },
                    body: JSON.stringify({ token: token })
                });
            });
    });
</script>

Hauptunterschiede zum Standard-reCAPTCHA v3:

  • Die Skript-URL verwendet .../recaptcha/enterprise.js anstelle von .../recaptcha/api.js
  • Das API-Objekt ist grecaptcha.enterprise anstelle von grecaptcha
  • execute() gibt das gleiche Tokenformat zurück

Erkennung in der Seitenquelle

import requests
import re

def detect_recaptcha_enterprise(url):
    """Detect if a page uses reCAPTCHA Enterprise."""
    html = requests.get(url, timeout=10).text

    indicators = {
        "is_enterprise": False,
        "is_standard": False,
        "site_key": None,
        "actions": [],
    }

    # Enterprise detection
    if "recaptcha/enterprise.js" in html:
        indicators["is_enterprise"] = True
        match = re.search(r"render=([A-Za-z0-9_-]+)", html)
        if match:
            indicators["site_key"] = match.group(1)

    # Standard v3 detection
    elif "recaptcha/api.js?render=" in html:
        indicators["is_standard"] = True
        match = re.search(r"render=([A-Za-z0-9_-]+)", html)
        if match:
            indicators["site_key"] = match.group(1)

    # Extract action names
    actions = re.findall(r"action:\s*['\"](\w+)['\"]", html)
    indicators["actions"] = list(set(actions))

    return indicators

print(detect_recaptcha_enterprise("https://example.com/login"))

Serverseitige Bewertungs-API

Eine Bewertung erstellen (Google Cloud API)

from google.cloud import recaptchaenterprise_v1
from google.cloud.recaptchaenterprise_v1 import Assessment

def create_assessment(project_id, site_key, token, action):
    """Create a reCAPTCHA Enterprise assessment."""
    client = recaptchaenterprise_v1.RecaptchaEnterpriseServiceClient()

    event = recaptchaenterprise_v1.Event()
    event.site_key = site_key
    event.token = token
    event.expected_action = action

    assessment = recaptchaenterprise_v1.Assessment()
    assessment.event = event

    request = recaptchaenterprise_v1.CreateAssessmentRequest()
    request.assessment = assessment
    request.parent = f"projects/{project_id}"

    response = client.create_assessment(request)
    return response

Bewertungs-Antwortstruktur

{
    "name": "projects/123456/assessments/abcdef123",
    "event": {
        "token": "...",
        "siteKey": "6Le...",
        "expectedAction": "LOGIN",
        "hashedAccountId": "abc123..."
    },
    "riskAnalysis": {
        "score": 0.9,
        "reasons": [
            "AUTOMATION",
            "TOO_MUCH_TRAFFIC"
        ],
        "extendedVerdictReasons": [
            "BROWSER_ERROR"
        ]
    },
    "tokenProperties": {
        "valid": true,
        "hostname": "example.com",
        "action": "LOGIN",
        "createTime": "2025-01-15T10:30:00Z",
        "invalidReason": ""
    },
    "accountDefenderAssessment": {
        "labels": ["PROFILE_MATCH"]
    }
}

Gründe für die Unternehmensbewertung

Unternehmen nennt konkrete Gründe, warum eine Punktzahl niedrig ist:

Grund Beschreibung Wirkung erzielen
AUTOMATION Automatisierter Benutzeragent oder Headless-Browser erkannt -0,3 bis -0,7
UNEXPECTED_ENVIRONMENT Inkonsistenzen im Browser oder in der Geräteumgebung -0,2 bis -0,4
TOO_MUCH_TRAFFIC Hohes Anforderungsvolumen von dieser IP oder Sitzung -0,1 bis -0,3
UNEXPECTED_USAGE_PATTERNS Verhaltenssignale weichen von menschlichen Normen ab -0,2 bis -0,5
LOW_CONFIDENCE_SCORE Unzureichende Daten, um eine verlässliche Einschätzung vorzunehmen Variabel
SUSPECTED_CARDING Das Transaktionsmuster stimmt mit Kreditkartenbetrug überein -0,3 bis -0,6
SUSPECTED_CHARGEBACK Risiko einer Rückbuchung aufgrund von Transaktionssignalen -0,2 bis -0,4

Erweiterte Urteilsgründe (zusätzliche Angaben)

Grund Beschreibung
BROWSER_ERROR JavaScript-Ausführungsfehler im CAPTCHA SDK
SITE_MISMATCH Token wurde für eine andere Site erstellt als für die Validierung
FAILED_TWO_FACTOR Die Zwei-Faktor-Authentifizierung ist kürzlich fehlgeschlagen

Kontoverteidiger

Der Account Defender von Enterprise verfolgt Benutzerkonten über ihren gesamten Lebenszyklus hinweg:

{
    "accountDefenderAssessment": {
        "labels": [
            "PROFILE_MATCH",
            "SUSPICIOUS_LOGIN_ACTIVITY",
            "SUSPICIOUS_ACCOUNT_CREATION",
            "RELATED_ACCOUNTS_NUMBER_HIGH"
        ]
    }
}
Etikett Bedeutung
PROFILE_MATCH Das Verhalten entspricht dem bekannten Profil für dieses Konto
SUSPICIOUS_LOGIN_ACTIVITY Anmeldemuster weicht vom Normalen ab (neues Gerät, Standort)
SUSPICIOUS_ACCOUNT_CREATION Die Kontoerstellung scheint automatisiert zu sein
RELATED_ACCOUNTS_NUMBER_HIGH Mehrere Konten sind mit demselben Gerät verknüpft/session

WAF-Integration

reCAPTCHA Enterprise lässt sich mit WAF-Anbietern integrieren, um CAPTCHA-Herausforderungen am Netzwerkrand hinzuzufügen:

Cloudflare WAF-Integration

Request arrives at Cloudflare edge
    ↓
Cloudflare WAF rule evaluates request
    ↓
Rule triggers reCAPTCHA Enterprise challenge
    ↓
Client solves CAPTCHA → token returned
    ↓
Cloudflare validates token via Enterprise API
    ↓
If valid + score above threshold → request forwarded to origin

F5 BIG-IP-Integration

F5 iRule or policy evaluates request
    ↓
Triggers reCAPTCHA Enterprise challenge page
    ↓
Client solves → token validated server-side
    ↓
F5 forwards or blocks based on assessment score

Umgang mit Enterprise reCAPTCHA in der Automatisierung

CaptchaAI löst Enterprise auf die gleiche Weise wie Standard-reCAPTCHA

Aus API-Solver-Perspektive funktionieren reCAPTCHA Enterprise-Tokens identisch mit Standard-reCAPTCHA-Tokens:

import requests
import time

API_KEY = "YOUR_API_KEY"

# Enterprise is solved with the same method
# The solver handles the Enterprise variant automatically
submit = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "userrecaptcha",
    "googlekey": "6LcR_RsTAAAAAN_r0GEkGBfq3L7KmU5JbPHJtwNp",
    "pageurl": "https://enterprise-site.com/login",
    "enterprise": 1,  # Flag for Enterprise variant
    "json": 1,
})

task_id = submit.json()["request"]

for _ in range(60):
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": API_KEY,
        "action": "get",
        "id": task_id,
        "json": 1,
    }).json()

    if result.get("status") == 1:
        token = result["request"]
        print(f"Enterprise token: {token[:50]}...")
        break

Node.js

const axios = require("axios");

async function solveEnterprise(sitekey, pageurl) {
    const API_KEY = "YOUR_API_KEY";

    const { data: submit } = await axios.post(
        "https://ocr.captchaai.com/in.php",
        new URLSearchParams({
            key: API_KEY,
            method: "userrecaptcha",
            googlekey: sitekey,
            pageurl: pageurl,
            enterprise: 1,
            json: 1,
        })
    );

    const taskId = submit.request;

    for (let i = 0; i < 60; i++) {
        await new Promise(r => setTimeout(r, 5000));
        const { data: result } = await axios.get(
            "https://ocr.captchaai.com/res.php",
            { params: { key: API_KEY, action: "get", id: taskId, json: 1 } }
        );

        if (result.status === 1) return result.request;
    }

    throw new Error("Timeout");
}

So erkennen Sie Enterprise vs. Standard auf einer Zielseite

def identify_recaptcha_version(html):
    """Determine which reCAPTCHA version a page uses."""
    if "recaptcha/enterprise.js" in html:
        return "enterprise"
    elif "recaptcha/api.js?render=" in html:
        return "v3"
    elif "g-recaptcha" in html and 'data-size="invisible"' in html:
        return "v2_invisible"
    elif "g-recaptcha" in html:
        return "v2"
    else:
        return "none"

Fehlerbehebung für Unternehmen

Problem Diagnose Lösung
Token von Enterprise API abgelehnt Verwendung der Standardmethode für Unternehmensstandorte Fügen Sie enterprise=1 zur Solver-Anfrage hinzu
Score trotz gültigem Token immer 0,1 Nicht übereinstimmende Aktionsparameter Stellen Sie sicher, dass action mit dem übereinstimmt, was die Seite sendet
„SITE_MISMATCH“ in den Gründen Token für falsche Domain generiert Stellen Sie sicher, dass pageurl genau mit dem Ziel übereinstimmt
„AUTOMATION“ in Partiturgründen Solver-Umgebung erkannt CaptchaAI kümmert sich darum. Wenn das Problem weiterhin besteht, wenden Sie sich an den Support
Token gültig, aber die Website blockiert immer noch Die Website verwendet über CAPTCHA hinaus zusätzliche Prüfungen Suchen Sie nach anderen Bot-Erkennungsebenen (WAF, Browser-Signalprofil).

Häufig gestellte Fragen

Ist reCAPTCHA Enterprise schwieriger zu lösen als Standard-reCAPTCHA?

Der Token-Generierungsprozess ist derselbe. Enterprise fügt serverseitige Analysefunktionen hinzu (Bewertungsgründe, Account Defender), aber die clientseitige Herausforderung ist identisch. API-Solver generieren Token für Enterprise auf die gleiche Weise wie für Standardversionen.

Benötige ich ein Google Cloud-Konto, um Unternehmens-CAPTCHAs zu lösen?

Nein. Als Automatisierungsentwickler, der Unternehmens-CAPTCHAs auf Zielwebsites löst, benötigen Sie lediglich den sitekey von der Seite und einen API-Solver wie CaptchaAI. Das Google Cloud-Konto wird vom Website-Betreiber zur Validierung von Bewertungen benötigt, nicht vom CAPTCHA-Löser.

Wie kann ich feststellen, ob eine Website Enterprise- oder Standard-reCAPTCHA verwendet?

Überprüfen Sie die Skript-URL. Enterprise verwendet recaptcha/enterprise.js, während Standard recaptcha/api.js verwendet. Auch der Name des JavaScript-API-Objekts unterscheidet sich: grecaptcha.enterprise.execute() vs. grecaptcha.execute().

Können Enterprise-Score-Gründe zur Verbesserung meiner Automatisierung verwendet werden?

Wenn Sie die Zielseite betreiben (und Ihre eigene CAPTCHA-Implementierung testen), ja – aus den Gründen erfahren Sie, welche Erkennungssignale ausgelöst wurden. Wenn Sie CAPTCHAs auf Drittseiten lösen, sind die Gründe für Sie nicht sichtbar, sondern nur für den Seitenbetreiber.


Zusammenfassung

reCAPTCHA Enterprise erweitert das Standard-reCAPTCHA um detaillierte Risikoanalyse, Bewertungsgründe, Account Defender und WAF-Integration. Aus Sicht der Automatisierung werden Enterprise-CAPTCHAs genauso gelöst wie Standard-reCAPTCHA – fügen Sie den Parameter enterprise=1 zu Ihrem hinzuCaptchaAIAPI-Anfrage. Erkennen Sie Enterprise, indem Sie in der Seitenquelle nach recaptcha/enterprise.js suchen. Der wesentliche betriebliche Unterschied besteht darin, sicherzustellen, dass Sie das richtige enterprise-Flag und den passenden action-Parameter übergeben.

Verwandte Leitfäden

Kommentare sind für diesen Artikel deaktiviert.

Verwandte Beiträge

Explainers Leitfaden zur reCAPTCHA-Anker- und Bframe-URL-Extraktion
Klarer Überblick zu Leitfaden zur re CAPTCHA-Anker- und Bframe-URL-Extraktion und dazu, was das für Automatisierung, Integration und Erfolgsquoten mit Captcha A...

Klarer Überblick zu Leitfaden zur re CAPTCHA-Anker- und Bframe-URL-Extraktion und dazu, was das für Automatisi...

Apr 28, 2026
Comparisons Headless vs. Headed Chrome für CAPTCHA-Tests in eigener QA
Wann sich Headless-Chrome und wann Headed-Chrome für CAPTCHA-Tests in eigenen CI- und QA-Pipelines eignet, und welche Auswirkungen die Wahl auf Stabilität und L...

Wann sich Headless-Chrome und wann Headed-Chrome für CAPTCHA-Tests in eigenen CI- und QA-Pipelines eignet, und...

Apr 17, 2026