SilentShield

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

Responsejson
{
  "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).

Server-Side Logicjavascript
if not ok or verdict != "human":
    Formular ablehnen (403)
else:
    Formular normal verarbeiten

Formulare 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.