SilentShield

Integrați SilentShield în siguranță în formularul dumneavoastră

Script client, verificare pe server, chei și cazuri de eroare – integrarea completă într-un singur loc.

Cum funcționează împreună scriptul și verificarea pe server

O integrare completă are două jumătăți: scriptul din browser și o verificare pe serverul dumneavoastră.

  1. 1

    Scriptul se încarcă

    Pagina dumneavoastră încarcă client.js?k=… cu cheia site-ului. Scriptul măsoară comportamentul în formular.

  2. 2

    Formularul este trimis

    La trimitere, scriptul raportează măsurătoarea și adaugă câmpul behavior_nonce în formularul dumneavoastră.

  3. 3

    Serverul dumneavoastră întreabă

    Serverul dumneavoastră trimite behavior_nonce către POST /api/v1/captcha/verify-nonce, cu cheia în antetul X-Api-Key.

  4. 4

    Dumneavoastră decideți

    Răspunsul conține ok, verdict, confidence și reason_codes. Acceptați trimiterea dacă ok este true, altfel respingeți-o.

Fără pasul 3, integrarea protejează doar pe jumătate: scriptul singur nu oprește o cerere trimisă direct către serverul dumneavoastră.

Cheia site-ului și cheia de server

Cheia site-ului (publică)

client.js?k=…

Apare în codul sursă al paginii și este vizibilă pentru oricine. Leagă scriptul de domeniul dumneavoastră; subdomeniile precum www. sau staging. sunt incluse.

Cheia de server (secretă, opțională)

X-Api-Key

Opțional. Dacă doriți ca apelurile făcute de serverul dumneavoastră să conțină o valoare care nu se află în codul sursă al paginii, creați-o în panoul de control, la cheie, în fila „Cheie de server”. Trebuie să se afle doar pe serverul dumneavoastră, niciodată în browser, și poate fi regenerată oricând.

Verificarea pe server funcționează doar cu cheia site-ului, deci nu trebuie să modificați nimic. Ambele chei sunt acceptate. Cu cheia de server, codul serverului dumneavoastră nu conține nicio valoare pe care oricine o poate citi în codul sursă al paginii.

Ghid rapid

1

Instalare și încorporare

Adăugați scriptul și obțineți un token

2

Verificare pe server

Validați tokenul pe backend-ul dumneavoastră

Test rapid cu cURL

Verificați nonce din linia de comandă

# Verificare Nonce
curl -X POST https://api.silentshield.io/api/v1/captcha/verify-nonce \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"nonce": "256ea6c63c3ccdd317e05cbc9ef0c659"}'

Frontend Integration

Add the client script with SRI and defer attributes

<!-- In <head> or before </body> of every page with a form -->
<script src="https://api.silentshield.io/client.js?k=YOUR_API_KEY" defer></script>

Securitate și confidențialitate

  • Fără cookie-uri – funcționare complet fără cookie-uri
  • Fără profiluri, fără cookie-uri – utilizabil în conformitate cu GDPR
  • Găzduire în EU – verificare și stocare pe serverele noastre din Germania
  • Compatibil WCAG – accesibil tuturor utilizatorilor
  • Compatibil CSP – utilizare cu Content Security Policy:
Content-Security-Policy: script-src 'self' https://api-us.silentshield.io https://api-eu.silentshield.io; connect-src 'self' https://api-us.silentshield.io https://api-eu.silentshield.io; worker-src 'self' blob:;

SDK-uri și Biblioteci

Pachetul rulează pe serverul dumneavoastră (Node.js 18 sau mai nou). În browser nu aveți nevoie de niciun pachet — acolo este suficient fragmentul client.js din ghidul rapid.

Node.js / Express

v1.5.0
npm i @forge12interactive/silentshield-sdk-js
import { createClient } from "@forge12interactive/silentshield-sdk-js";

const shield = createClient({ apiKey: process.env.SILENTSHIELD_API_KEY });

app.post("/signup", async (req, res) => {
  const { human } = await shield.verify(req.body.behavior_nonce);
  if (!human) return res.status(403).send("Verification failed");
  res.send("ok");
});

Agenți IA (Node.js)

v1.5.0
npm i @forge12interactive/silentshield-sdk-js
import { createClient, enforce } from "@forge12interactive/silentshield-sdk-js";

const shield = createClient({ apiKey: process.env.SILENTSHIELD_API_KEY });

// Reports bot candidates only — never blocks, never sees human traffic.
app.use(shield.observe);

// Applies your policy locally from a signed bundle. Fail-open.
app.use(enforce({ apiKey: process.env.SILENTSHIELD_API_KEY }));

Referință API

API Version: 2025-10-01 · Base URL: https://api.silentshield.io

POST/api/v1/captcha/verify-nonce

Verificare SilentShield Nonce

Request Headers:

X-Api-KeyYOUR_API_KEY
Content-Typeapplication/json

Request Body:

noncestringNonce-ul de verificat

Response:

Success (200):

{
  "ok": true,
  "verdict": "human",
  "confidence": 0.95,
  "requested_nonce": "256ea6c63c3ccdd317e05cbc9ef0c659"
}

Error:

{
  "ok": false,
  "verdict": "bot",
  "confidence": 0.12,
  "request_nonce": "256ea6c63c3ccdd317e05cbc9ef0c659",
  "reason_codes": ["NO_MOUSE_MOVEMENT"]
}

Status Codes:

200Nonce verificat cu succes
400Cerere invalidă (Nonce lipsă sau incorect)
401Cheie API invalidă
403Nu a fost confirmat ca om (ok: false) – respingeți trimiterea
429Limită de rată depășită
500Eroare internă a serverului

Limite de timp, întreruperi și cotă

  • Setați o limită de timp pentru verificarea pe server. Exemplele noastre de cod folosesc 5 secunde.
  • Dacă verificarea nu răspunde la timp, exemplele o tratează drept „neconfirmată” și resping. Dacă în acest caz preferați să acceptați, tratați singur eroarea — decizia vă aparține.
  • Dacă primul host nu răspunde în timp ce scriptul își încarcă setările și componentele, acesta trece la al doilea (api.silentshield.io și api-eu.silentshield.io). Cheile cu legare strictă la UE rămân pe hostul din UE.
  • Pentru verificarea pe server nu există un host de rezervă automat.
  • Peste cota lunară, API-ul continuă să verifice și răspunde ca de obicei. Un 429 înseamnă că a fost depășită limita de cereri pe minut pentru cheia dumneavoastră.

Testare locală și pe un domeniu de test

  • Cheia dumneavoastră nu funcționează pe localhost: este legată de domeniul dumneavoastră, iar scriptul este respins acolo.
  • Testați pe un subdomeniu al domeniului dumneavoastră, de exemplu staging.domeniul-dumneavoastra.ro. Funcționează cu cheia domeniului principal și nu ocupă un loc suplimentar de domeniu.
  • Dacă doriți să evaluați separat testul și producția, creați o a doua cheie pentru același domeniu. Nici aceasta nu ocupă un loc suplimentar de domeniu.
  • Trimiteți un formular de test și verificați pe server răspunsul verify-nonce: o introducere tastată manual ar trebui să returneze ok: true; altfel, reason_codes arată de ce nu.
Configurați un domeniu de test

Versiuni și modificări

  • API-ul își poartă versiunea în cale: /api/v1. Aceleași rute sunt disponibile și sub /api.
  • Scriptul nu are număr de versiune: client.js livrează întotdeauna versiunea curentă, deci nu trebuie să actualizați nimic.
  • SDK-urile pentru PHP, Node, Go și Edge au numere de versiune; modificările sunt listate în jurnalul de modificări al fiecărui pachet.
  • Publicăm modificările aduse API-ului și scriptului în jurnalul de modificări.

Resurse

Centru de ajutor

Documentație completă cu ghiduri de început, tutoriale de integrare, referințe de configurare și depanare.

Jurnal de modificări

Fiți la curent cu cele mai noi funcționalități, îmbunătățiri și remedieri.

Sunteți gata să începeți?

Creați un cont gratuit și obțineți cheia dvs.