SilentShield

Serversideverificering

Verificer altid SilentShield-nonce på din server. Kontroller alene på klientsiden kan omgås af bots.

Hvorfor serverside?

Widgetten kører i browseren og injicerer en nonce i formularer. En bot kunne springe widgetten over og indsende formularen direkte. Serversideverificering sikrer, at nonce er legitimt udstedt og verificeret af SilentShield.

API-endepunkt

Method
POST
URL
https://api.silentshield.io/api/v1/captcha/verify-nonce
Headers
X-Api-Key: YOUR_API_KEY Content-Type: application/json
Body
{ "nonce": "the-nonce-from-the-form" }

Svarformat

Responsejson
{
  "ok": true,
  "verdict": "human",
  "confidence": 0.92,
  "requested_nonce": "..."
}
human
human — Brugeren er med stor sandsynlighed et menneske. Behandl formularen.
suspicious
suspicious — serveren afviste den (HTTP 403, `ok: false`). Kendelsen nævner årsagen, ikke afgørelsen: den er allerede truffet af din kontos tærskel.
bot
bot — Høj sikkerhed for, at dette er en bot. Afvis formularen.

Anbefalet logik

Serveren har allerede anvendt din kontos tærskel: en afvisning kommer som HTTP 403 med `ok: false`. Tjek derfor for godkendelse, ikke for `bot` — ellers slipper du hver afvisning igennem, der er afgivet som `suspicious`, og hvert svar uden en kendelse (ugyldig nøgle, opbrugt kvote).

Server-Side Logicjavascript
if not ok or verdict != "human":
    afvis formularen (403)
else:
    behandl formularen normalt

Formularer sendt med AJAX

Widgetten melder en indsendelse, når formularen sendes med en almindelig submit. Den melder også anmodninger lavet med XMLHttpRequest, herunder jQuery.ajax, så længe anmodningens krop indeholder feltet behavior_nonce: Den holder anmodningen et øjeblik tilbage, melder skrive- og musedata og sender anmodningen, når afgørelsen foreligger, senest efter 15 sekunder. Serialiser derfor hele formularen, også skjulte felter. Din kontrol på serveren ændres ikke.

Ikke dækket: anmodninger lavet med fetch() og synkrone anmodninger. Her får serveren ingen skrive- og musedata, og /v1/verify svarer suspicious.

Fejlhåndtering

Hvis SilentShield API er utilgængelig (timeout, 5xx-fejl), beslut dig for din strategi:

Fail Open
Slip igennem — Accepter formularen (bedre UX, mindre sikkert)
Fail Closed
Blokér — Afvis formularen (mere sikkert, dårligere UX)

For de fleste applikationer anbefaler vi at slippe igennem med logning. Kritiske formularer (login, betaling) bør blokere.