Επαλήθευση στον διακομιστή

Πάντα να επαληθεύετε το SilentShield nonce στον διακομιστή σας. Οι έλεγχοι μόνο στην πλευρά του πελάτη μπορούν να παρακαμφθούν από bots.

Γιατί στον διακομιστή;

Το Widget εκτελείται στο πρόγραμμα περιήγησης και εισάγει ένα nonce στις φόρμες. Ένα bot μπορεί να παρακάμψει το Widget και να υποβάλει τη φόρμα απευθείας. Η επαλήθευση στον διακομιστή διασφαλίζει ότι το nonce εκδόθηκε νόμιμα και επαληθεύτηκε από το SilentShield.

Τελικό σημείο API

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" }

Μορφή απάντησης

Responsejson
{
  "ok": true,
  "verdict": "human",
  "confidence": 0.92,
  "requested_nonce": "..."
}
human
human — Ο χρήστης είναι πολύ πιθανό άνθρωπος. Επεξεργαστείτε τη φόρμα.
suspicious
suspicious — ο διακομιστής την απέρριψε (HTTP 403, `ok: false`). Η ετυμηγορία αναφέρει τον λόγο, όχι την απόφαση: αυτή έχει ήδη ληφθεί από το κατώφλι του λογαριασμού σας.
bot
bot — Υψηλή βεβαιότητα ότι πρόκειται για bot. Απορρίψτε τη φόρμα.

Συνιστώμενη λογική

Ο διακομιστής έχει ήδη εφαρμόσει το κατώφλι του λογαριασμού σας: μια απόρριψη φτάνει ως HTTP 403 με `ok: false`. Ελέγχετε λοιπόν για έγκριση, όχι για `bot` — αλλιώς αφήνετε να περάσει κάθε απόρριψη που εκδόθηκε ως `suspicious`, καθώς και κάθε απάντηση χωρίς ετυμηγορία (άκυρο κλειδί, εξαντλημένο όριο).

Server-Side Logicjavascript
if not ok or verdict != "human":
    απόρριψη της φόρμας (403)
else:
    κανονική επεξεργασία της φόρμας

Διαχείριση σφαλμάτων

Εάν το API του SilentShield δεν είναι προσβάσιμο (timeout, σφάλμα 5xx), αποφασίστε τη στρατηγική σας:

Fail Open
Fail open — Αποδεχτείτε τη φόρμα (καλύτερη εμπειρία χρήστη, λιγότερο ασφαλές)
Fail Closed
Fail closed — Απορρίψτε τη φόρμα (πιο ασφαλές, χειρότερη εμπειρία χρήστη)

Για τις περισσότερες εφαρμογές, συνιστούμε fail open με καταγραφή. Κρίσιμες φόρμες (σύνδεση, πληρωμή) θα πρέπει να χρησιμοποιούν fail closed.