Unsichtbare CAPTCHAs verifizieren Benutzer, ohne eine sichtbare Herausforderung anzuzeigen. Es gibt kein Kontrollkästchen zum Anklicken, kein Bildraster zum Lösen und keinen Text zum Eingeben. Die Überprüfung erfolgt vollständig im Hintergrund durch JavaScript, das das Browserverhalten, Gerätesignale und die Netzwerkreputation analysiert. Wenn Ihr Automatisierungsworkflow auf ein Formular stößt, das für einige Benutzer sauber übermittelt wird, andere jedoch blockiert – ohne sichtbares CAPTCHA auf der Seite – haben Sie es mit einem unsichtbaren CAPTCHA-System zu tun.
Kurzüberblick
| Wenn Sie nur wissen wollen... | Die kurze Antwort |
|---|---|
| Warum sehe ich kein CAPTCHA? | Weil die Bewertung im Hintergrund läuft und nur bei höherem Risiko sichtbar wird |
| Brauche ich trotzdem ein Token? | Ja, auch unsichtbare Systeme erzeugen Verifikationsdaten oder Tokens |
| Welche Systeme begegnen Ihnen am häufigsten? | reCAPTCHA v3 und Cloudflare Turnstile |
| Was ist der wichtigste Diagnosehinweis? | Unterschiedliche Nutzer oder Sessions sehen unterschiedlich viel Reibung |
So funktionieren unsichtbare CAPTCHAs
Alle unsichtbaren CAPTCHAs folgen demselben Grundmuster:
Page loads → CAPTCHA JavaScript injected
↓
Script runs in background, collecting signals:
├─ Browser fingerprint (canvas, WebGL, fonts, plugins)
├─ Behavioral data (mouse, keyboard, scroll, timing)
├─ Network data (IP reputation, TLS fingerprint)
├─ Device data (screen, GPU, CPU cores, memory)
└─ History data (cookies, previous CAPTCHA completions)
↓
Signals sent to CAPTCHA provider's risk engine
↓
Risk score computed
↓
Response varies by score:
├─ Low risk → Token issued silently (user sees nothing)
├─ Medium → Light challenge shown (checkbox, simple click)
└─ High risk → Full challenge (image grid) or block
Der wesentliche Unterschied zu sichtbaren CAPTCHAs: Die Überprüfung läuft kontinuierlich ab dem Moment, in dem die Seite geladen wird, und nicht erst, wenn der Benutzer auf ein Kontrollkästchen klickt.
Wichtige unsichtbare CAPTCHA-Systeme
1. reCAPTCHA v3
Anbieter: Google Veröffentlichung: 2018 Marktanteil: Hoher unter den unsichtbaren CAPTCHAs
reCAPTCHA v3 gibt für jede Seitenaktion einen Gleitkommawert zwischen 0,0 und 1,0 zurück. Der Websitebesitzer entscheidet, was mit der Punktzahl geschehen soll.
Wie es Signale sammelt:
<!-- reCAPTCHA v3 integration -->
<script src="https://www.google.com/recaptcha/api.js?render=SITE_KEY"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('SITE_KEY', { action: 'login' }).then(function(token) {
// Token sent to server for verification
document.getElementById('captcha-token').value = token;
});
});
</script>
Der execute()-Aufruf löst die Signalerfassung bei Bedarf aus. Hinter den Kulissen sammelt reCAPTCHA seit dem Laden des Skripts Daten.
Score-Interpretation:
| Punktzahl | Bedeutung | Typische Aktion |
|---|---|---|
| 0,9 | Sehr wahrscheinlich ein Mensch | Erlauben |
| 0,7 | Wahrscheinlich ein Mensch | Mit Überwachung zulassen |
| 0,5 | Unsicher | Erfordern eine zusätzliche Überprüfung |
| 0,3 | Wahrscheinlich Bot | reCAPTCHA v2 blockieren oder anzeigen |
| 0,1 | Sehr wahrscheinlich Bot | Blockieren |
Erkennung in der Seitenquelle:
import requests
import re
def detect_recaptcha_v3(url):
html = requests.get(url, timeout=10).text
indicators = {
"recaptcha_v3": False,
"site_key": None,
"actions": [],
}
# Check for v3 script
if "recaptcha/api.js?render=" in html:
indicators["recaptcha_v3"] = True
match = re.search(r"render=([A-Za-z0-9_-]+)", html)
if match:
indicators["site_key"] = match.group(1)
# Find action names
actions = re.findall(r"action:\s*['\"](\w+)['\"]", html)
indicators["actions"] = actions
return indicators
print(detect_recaptcha_v3("https://example.com/login"))
2. Cloudflare Turnstile
Anbieter: Cloudflare Veröffentlichung: 2022 Marktanteil: Am schnellsten wachsend
Turnstile verwendet eine mehrstufige Verifizierungspipeline, ohne dass eine Benutzerdatenerfassung erforderlich ist.
Verifizierungsschritte:
- Überprüfung des privaten Zugriffstokens – Wenn der Browser Apple PAT unterstützt, wird die Überprüfung sofort abgeschlossen
- Nicht interaktive Herausforderung – Der Browser löst ein leichtes kryptografisches Proof-of-Work-Rätsel
- Bewältigte Herausforderung – Cloudflare entscheidet auf der Grundlage von Risikosignalen aus seinem Netzwerk zwischen nicht interaktiv und interaktiv (mehr als 20 % des Internetverkehrs fließen über Cloudflare).
- Interaktive Herausforderung – Wird nur angezeigt, wenn die Risikobewertung hoch ist; Zeigt ein Widget im Kontrollkästchen-Stil an
Integration:
<!-- Turnstile widget -->
<div class="cf-turnstile" data-sitekey="0x4AAAAAAAC3DHQhMMQ_Rxrg"></div>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
Erkennung:
def detect_turnstile(url):
html = requests.get(url, timeout=10).text
indicators = {
"turnstile": False,
"site_key": None,
}
if "challenges.cloudflare.com/turnstile" in html or "cf-turnstile" in html:
indicators["turnstile"] = True
match = re.search(r'data-sitekey="([^"]+)"', html)
if match:
indicators["site_key"] = match.group(1)
return indicators
3. reCAPTCHA v2 Unsichtbar
Anbieter: Google Veröffentlichung: 2017
Dies wird reCAPTCHA v2 programmgesteuert bei der Formularübermittlung ausgelöst. Es ist kein Kontrollkästchen sichtbar – der Benutzer klickt auf die Schaltfläche „Senden“ und reCAPTCHA wird im Hintergrund ausgeführt. Wenn die Risikobewertung hoch genug ist, wird eine sichtbare Bildherausforderung als Popup angezeigt.
Integration:
<button class="g-recaptcha"
data-sitekey="SITE_KEY"
data-callback="onSubmit"
data-size="invisible">
Submit
</button>
Hauptunterschied zu v3: v2 Invisible greift immer noch auf eine sichtbare Herausforderung für riskante Benutzer zurück. v3 zeigt nie eine sichtbare Herausforderung – die Website muss entscheiden, was mit der Punktzahl geschehen soll.
4. hCaptcha Passiv (Unternehmen)
Anbieter: Intuition Machines Verfügbarkeit: Nur Enterprise-Stufe
Der passive Modus von hCaptcha Enterprise wertet den Benutzer ohne sichtbares Widget aus. Es verwendet die gleichen Verhaltenssignale wie Standard-hCaptcha, stellt aber nur für die misstrauischsten Besucher eine visuelle Herausforderung dar.
5. Private Zugriffstoken von Apple
Anbieter: Apple Verfügbarkeit: iOS 16+, macOS Ventura+
Dies ist kein CAPTCHA-Anbieter, sondern ein CAPTCHA-Umgehungsmechanismus. Apple-Geräte beweisen ihre Legitimität durch einen Hardware-Nachweis, der es Websites ermöglicht, CAPTCHAs vollständig zu überspringen.
Device attestation:
1. Website requests a challenge from a token issuer
2. Device proves it is genuine without revealing identity
3. Token issuer generates a blind-signed token
4. Website verifies token → CAPTCHA skipped
Unterstützt von Cloudflare, Fastly und anderen CDN-Anbietern.
Unsichtbare CAPTCHAs mit CaptchaAI lösen
Unsichtbare CAPTCHAs generieren weiterhin Token, die mit Formularen übermittelt werden müssen. API-basierte Solver generieren diese Token extern.
Lösung von reCAPTCHA v3
import requests
import time
API_KEY = "YOUR_API_KEY"
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "6LdKlZEpAAAAAAOQjzC2v_d36tWxCl6dWsozdSy9",
"pageurl": "https://example.com/login",
"version": "v3",
"action": "login",
"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"reCAPTCHA v3 token received (score ≥ 0.9)")
break
Lösung von Cloudflare Turnstile
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "turnstile",
"sitekey": "0x4AAAAAAAC3DHQhMMQ_Rxrg",
"pageurl": "https://example.com/signup",
"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:
turnstile_token = result["request"]
print(f"Turnstile token received (100% success rate)")
break
Node.js – Lösung von reCAPTCHA v3
const axios = require("axios");
async function solveRecaptchaV3(siteKey, pageUrl, action) {
const API_KEY = "YOUR_API_KEY";
// Submit
const { data: submit } = await axios.post(
"https://ocr.captchaai.com/in.php",
new URLSearchParams({
key: API_KEY,
method: "userrecaptcha",
googlekey: siteKey,
pageurl: pageUrl,
version: "v3",
action: action,
json: 1,
})
);
const taskId = submit.request;
// Poll
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("Solve timeout");
}
solveRecaptchaV3("SITE_KEY", "https://example.com/login", "login")
.then((token) => console.log("Token:", token.substring(0, 50) + "..."));
Unsichtbare CAPTCHAs erkennen: umfassender Prüfer
import requests
import re
def detect_invisible_captcha(url):
"""Detect all invisible CAPTCHA types on a page."""
html = requests.get(url, timeout=10).text
results = []
# reCAPTCHA v3
if "recaptcha/api.js?render=" in html:
key = re.search(r"render=([A-Za-z0-9_-]+)", html)
results.append({
"type": "reCAPTCHA v3",
"site_key": key.group(1) if key else "unknown",
"solver_method": "userrecaptcha (version=v3)",
})
# reCAPTCHA v2 invisible
if 'data-size="invisible"' in html and "g-recaptcha" in html:
key = re.search(r'data-sitekey="([^"]+)"', html)
results.append({
"type": "reCAPTCHA v2 Invisible",
"site_key": key.group(1) if key else "unknown",
"solver_method": "userrecaptcha (invisible=1)",
})
# Cloudflare Turnstile
if "challenges.cloudflare.com/turnstile" in html:
key = re.search(r'data-sitekey="([^"]+)"', html)
results.append({
"type": "Cloudflare Turnstile",
"site_key": key.group(1) if key else "unknown",
"solver_method": "turnstile",
})
# hCaptcha (passive mode detected by script without visible widget)
if "hcaptcha.com/1/api.js" in html and 'data-size="invisible"' in html:
results.append({
"type": "hCaptcha Passive",
"solver_method": "hcaptcha",
})
if not results:
results.append({"type": "none detected"})
return results
for item in detect_invisible_captcha("https://example.com"):
print(item)
Vergleich der unsichtbaren CAPTCHAs
| Funktion | reCAPTCHA v3 | Drehkreuz | reCAPTCHA v2 Unsichtbar | hCaptcha Passiv |
|---|---|---|---|---|
| Sichtbare Herausforderung | Niemals | Selten | Manchmal (Fallback) | Selten |
| Datenschutz | Sammelt Browserdaten | Keine personenbezogenen Daten | Sammelt Browserdaten | Sammelt Interaktionsdaten |
| Kosten | Kostenlos (1M/month) | Kostenlos (unbegrenzt) | Kostenlos (1M/month) | Nur für Unternehmen |
| Punktzahl zurückgegeben | Ja (0,0-1,0) | Nein (pass/fail) | Nein (pass/fail) | Ja (Unternehmen) |
| Sichtbare Fallback-Herausforderung | Website entscheidet | Verwaltet von Cloudflare | Bildraster-Popup | Bildraster-Popup |
| CaptchaAI-Unterstützung | Ja (v3-Token) | Ja (100 % Erfolg) | Ja (Token) | Kontaktieren Sie den Support |
Häufig gestellte Fragen
Wie kann ich feststellen, ob eine Seite ein unsichtbares CAPTCHA hat?
Überprüfen Sie die Seitenquelle auf CAPTCHA-Anbieterskripts. Suchen Sie nach recaptcha/api.js?render= (reCAPTCHA v3), challenges.cloudflare.com/turnstile (Drehkreuz) oder hcaptcha.com/1/api.js mit data-size="invisible" (hCaptcha passiv). Das CAPTCHA-Widget ist auf der Seite nicht sichtbar, daher müssen Sie die HTML- oder Netzwerkanfragen überprüfen.
Erzeugt ein unsichtbares CAPTCHA trotzdem ein Token?
Ja. Unsichtbare CAPTCHAs generieren Token, die in Formularübermittlungen enthalten sein müssen. Der Token wird in einem versteckten Formularfeld platziert oder als Anfrageparameter gesendet. API-basierte Solver generieren diese Token extern.
Können unsichtbare CAPTCHAs meine Automatisierung blockieren, ohne dass ein Fehler angezeigt wird?
Ja. Wenn Ihre Automatisierung kein gültiges CAPTCHA-Token in die Formularübermittlung einschließt, lehnt der Server die Anfrage stillschweigend ab oder gibt einen allgemeinen Fehler zurück. Es gibt keine sichtbare CAPTCHA-Aufforderung – die Anfrage schlägt einfach fehl, weil das Token fehlt oder ungültig ist.
Ist reCAPTCHA v3 sicherer als reCAPTCHA v2?
reCAPTCHA v3 ist visuell schwerer zu erkennen (kein Widget auf der Seite), aber nicht unbedingt sicherer. v3 gibt einen Score zurück, auf den die Website reagieren muss – wenn der Schwellenwert zu niedrig eingestellt ist, passieren Bots problemlos. v2 erzwingt eine definitive Herausforderung/response. In der Praxis bietet v3 mit einem strengen Schwellenwert (0,7+) plus v2 als Fallback die beste Sicherheit.
Zusammenfassung
Unsichtbare CAPTCHAs verifizieren Benutzer durch eine JavaScript-Hintergrundanalyse des Browserverhaltens, der Gerätefingerabdrücke und der Netzwerkreputation – ohne sichtbare Interaktion. reCAPTCHA v3 und Cloudflare Turnstile sind die dominierenden Implementierungen, wobei Turnstile aufgrund seiner kostenlosen Preisgestaltung und seines datenschutzorientierten Designs am schnellsten wächst. Für die Automatisierung benötigen unsichtbare CAPTCHAs weiterhin gültige Token. VerwendenCaptchaAIum diese Token zu generieren: reCAPTCHA v3 über die Methode userrecaptcha mit version=v3 und Cloudflare Turnstile über die Methode turnstile mit einer Erfolgsquote von 100 %.