Integrer SilentShield sikkert i din formular
Klientscript, serverside-kontrol, nøgler og fejltilfælde – hele integrationen samlet ét sted.
Sådan arbejder scriptet og servertjekket sammen
En komplet integration har to halvdele: scriptet i browseren og et tjek på din server.
- 1
Scriptet indlæses
Din side indlæser client.js?k=… med din webstedsnøgle. Scriptet måler adfærden i formularen.
- 2
Formularen sendes
Ved afsendelse rapporterer scriptet målingen og tilføjer feltet behavior_nonce til din formular.
- 3
Din server spørger
Din server sender behavior_nonce til POST /api/v1/captcha/verify-nonce med din nøgle i headeren X-Api-Key.
- 4
Du beslutter
Svaret indeholder ok, verdict, confidence og reason_codes. Accepter indsendelsen, hvis ok er true, ellers afvis den.
Uden trin 3 beskytter integrationen kun halvvejs: scriptet alene stopper ikke en anmodning, der sendes direkte til din server.
Webstedsnøgle og servernøgle
Webstedsnøgle (offentlig)
client.js?k=…
Den står i kildekoden på din side og er synlig for alle. Den binder scriptet til dit domæne; underdomæner som www. eller staging. er inkluderet.
Servernøgle (hemmelig, valgfri)
X-Api-Key
Valgfrit. Hvis du vil have, at de kald, din server foretager, bærer en værdi, der ikke står i din sides kildekode, så opret den i dashboardet ved nøglen under fanen »Servernøgle«. Den hører kun hjemme på din server, aldrig i browseren, og kan genereres på ny når som helst.
Servertjekket virker med webstedsnøglen alene, så du behøver ikke ændre noget. Begge nøgler accepteres. Med servernøglen indeholder din serverkode ingen værdi, som alle kan læse i kildekoden på din side.
Hurtigstart
Installér og indlejr
Tilføj scriptet og få en token
Verificer på serveren
Valider tokenet på din backend
Hurtig test med cURL
Verificer nonce fra kommandolinjen
# Verificer 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>Sikkerhed & privatliv
- Ingen cookies – fuldstændig cookie-fri drift
- Ingen profiler, ingen cookies – kan anvendes GDPR-kompatibelt
- EU-hosting – kontrol og lagring på vores servere i Tyskland
- WCAG kompatibel – tilgængelig for alle brugere
- CSP kompatibel – brug med 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'er og Biblioteker
Pakken kører på din server (Node.js 18 eller nyere). I browseren har du slet ikke brug for en pakke — dér er client.js-uddraget fra hurtigstarten nok.
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");
});AI-agenter (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 }));API-reference
API Version: 2025-10-01 · Base URL: https://api.silentshield.io
/api/v1/captcha/verify-nonceVerificer SilentShield Nonce
Request Headers:
X-Api-KeyYOUR_API_KEYContent-Typeapplication/jsonRequest Body:
noncestringNonce, der skal verificeresResponse:
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 er verificeret succesfuldt400Ugyldig anmodning (manglende eller forkert Nonce)401Ugyldig API-nøgle403Ikke bekræftet som menneske (ok: false) – afvis indsendelsen429Hastighedsgrænse overskredet500Intern serverfejlTidsgrænser, nedbrud og kvote
- Sæt en tidsgrænse for servertjekket. Vores kodeeksempler bruger 5 sekunder.
- Hvis tjekket ikke svarer i tide, behandler eksemplerne det som »ikke bekræftet« og afviser. Hvis du hellere vil acceptere i det tilfælde, så fang fejlen selv — beslutningen er din.
- Hvis den første vært ikke svarer, mens scriptet indlæser sine indstillinger og komponenter, skifter det til den anden (api.silentshield.io og api-eu.silentshield.io). Nøgler med streng EU-binding bliver på EU-værten.
- Der er ingen automatisk reservevært for servertjekket.
- Over din månedlige kvote fortsætter API'et med at tjekke og svarer som normalt. En 429 betyder, at grænsen for anmodninger pr. minut for din nøgle er overskredet.
Test lokalt og på et testdomæne
- Din nøgle virker ikke på localhost: den er bundet til dit domæne, og scriptet afvises der.
- Test på et underdomæne af dit domæne, for eksempel staging.dit-domaene.dk. Det kører med hoveddomænets nøgle og optager ikke en ekstra domæneplads.
- Hvis du vil evaluere test og live hver for sig, så opret en ekstra nøgle til samme domæne. Heller ikke den optager en ekstra domæneplads.
- Send en formular som test, og tjek svaret fra verify-nonce på din server: en indtastning foretaget i hånden bør returnere ok: true; ellers viser reason_codes hvorfor ikke.
Versioner og ændringer
- API'et har sin version i stien: /api/v1. De samme ruter er tilgængelige under /api.
- Scriptet har intet versionsnummer: client.js leverer altid den aktuelle udgave, så du behøver ikke at opdatere noget.
- SDK'erne til PHP, Node, Go og Edge har versionsnumre; ændringer står i den enkelte pakkes changelog.
- Vi offentliggør ændringer i API'et og scriptet i changeloggen.
Ressourcer
Hjælpecenter
Omfattende dokumentation med kom godt i gang-guides, integrationsvejledninger, konfigurationsreferencer og fejlfinding.
Ændringslog
Hold dig opdateret om de nyeste funktioner, forbedringer og rettelser.