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
{
"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).
if not ok or verdict != "human":
afvis formularen (403)
else:
behandl formularen normaltFormularer 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.