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
Scriptul se încarcă
Pagina dumneavoastră încarcă client.js?k=… cu cheia site-ului. Scriptul măsoară comportamentul în formular.
- 2
Formularul este trimis
La trimitere, scriptul raportează măsurătoarea și adaugă câmpul behavior_nonce în formularul dumneavoastră.
- 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
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
Instalare și încorporare
Adăugați scriptul și obțineți un token
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.0npm i @forge12interactive/silentshield-sdk-jsimport { 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.0npm i @forge12interactive/silentshield-sdk-jsimport { 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
/api/v1/captcha/verify-nonceVerificare SilentShield Nonce
Request Headers:
X-Api-KeyYOUR_API_KEYContent-Typeapplication/jsonRequest Body:
noncestringNonce-ul de verificatResponse:
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 succes400Cerere invalidă (Nonce lipsă sau incorect)401Cheie API invalidă403Nu a fost confirmat ca om (ok: false) – respingeți trimiterea429Limită de rată depășită500Eroare internă a serveruluiLimite 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.
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.