Server-seitige Verifizierung
Verifizieren Sie die SilentShield-Nonce immer auf Ihrem Server. Nur clientseitige Prüfungen können von Bots umgangen werden.
Warum serverseitig?
Das Widget läuft im Browser und injiziert eine Nonce in Formulare. Ein Bot könnte das Widget überspringen und das Formular direkt absenden. Die serverseitige Verifizierung stellt sicher, dass die Nonce legitim ausgestellt und von SilentShield geprüft wurde.
API-Endpoint
- Method
POST- URL
https://api.silentshield.io/api/v1/captcha/verify-nonce- Headers
- X-Api-Key: IHR_API_KEY Content-Type: application/json
- Body
- { "nonce": "die-nonce-aus-dem-formular" }
Antwort-Format
{
"ok": true,
"verdict": "human",
"confidence": 0.92,
"requested_nonce": "..."
}human- human — Benutzer ist sehr wahrscheinlich ein Mensch. Formular verarbeiten.
suspicious- suspicious — der Server hat abgelehnt (HTTP 403, `ok: false`). Das Verdikt nennt den Grund, nicht die Entscheidung: die ist mit der Schwelle Ihres Kontos bereits gefallen.
bot- bot — Hohe Sicherheit, dass dies ein Bot ist. Formular ablehnen.
Empfohlene Logik
Der Server hat die Schwelle Ihres Kontos bereits angewendet: Eine Ablehnung kommt als HTTP 403 mit `ok: false`. Prüfen Sie deshalb auf Durchlass, nicht auf `bot` — sonst lassen Sie jede Ablehnung durch, die als `suspicious` ausgesprochen wurde, und jede Antwort ohne Verdikt (ungültiger Schlüssel, Kontingent erschöpft).
if not ok or verdict != "human":
Formular ablehnen (403)
else:
Formular normal verarbeitenFormulare mit AJAX
Das Widget meldet eine Absendung, wenn das Formular regulär abgeschickt wird. Es meldet auch Anfragen mit XMLHttpRequest, auch jQuery.ajax, solange der Anfragekörper das Feld behavior_nonce enthält: Es hält die Anfrage kurz an, meldet die Tipp- und Mausdaten und sendet die Anfrage, sobald das Urteil da ist, spätestens nach 15 Sekunden. Serialisieren Sie also das ganze Formular samt versteckter Felder. Ihre serverseitige Prüfung ändert sich nicht.
Nicht erfasst: Anfragen mit fetch() und synchrone Anfragen. Dafür erhält der Server keine Tipp- und Mausdaten, und /v1/verify antwortet suspicious.
Fehlerbehandlung
Wenn die SilentShield-API nicht erreichbar ist (Timeout, 5xx-Fehler), entscheiden Sie sich für eine Strategie:
- Fail Open
- Fail Open — Formular akzeptieren (bessere UX, weniger sicher)
- Fail Closed
- Fail Closed — Formular ablehnen (sicherer, schlechtere UX)
Für die meisten Anwendungen empfehlen wir Fail Open mit Logging. Kritische Formulare (Login, Zahlung) sollten Fail Closed verwenden.