Webhook-format
SilentShield kan skicka realtidsmeddelanden till din server via webhooks. Konfigurera webhook-URL:er i Instrumentpanel → Aviseringar.
Payloadstruktur
Alla webhook-payloads följer denna struktur:
{"event": "bot_detected", "timestamp": "2025-01-15T10:30:00Z", "data": {"keyId": "key_abc", "domain": "example.com", "ip": "203.0.113.42", "verdict": "bot", "score": 0.15, "userAgent": "Mozilla/5.0...", "page": "/contact"}}Händelsetyper
| Event | Description |
|---|---|
bot_detected | Utlöses när en förfrågan klassificeras som bot. |
bot_spike | Utlöses när botdetekteringar överstiger din varningströskel inom det konfigurerade fönstret. |
quota_warning | Utlöses när kvotanvändningen når 80 % eller 90 %. |
quota_exceeded | Utlöses när din månadskvot överskrids. |
domain_verification_failed | Utlöses när en domänomverifieringskontroll misslyckas. |
key_rotated | Utlöses när en API-nyckel roteras. |
Signaturverifiering
Varje webhook inkluderar ett X-SilentShield-Signature-huvud som innehåller en HMAC-SHA256-signatur. Verifiera denna signatur för att säkerställa att webhooken är äkta.
- Hämta den råa förfrågningskroppen (som sträng, före parsning)
- Hämta värdet från X-SilentShield-Signature-huvudet
- Beräkna HMAC-SHA256 av kroppen med din webhook-hemlighet som nyckel
- Jämför den beräknade signaturen med huvudvärdet
const crypto = require('crypto');
function verifyWebhook(body, signature, secret) {
const computed = crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(computed),
Buffer.from(signature)
);
}Återförsökspolicy
Om din slutpunkt returnerar en icke-2xx statuskod eller timeout (10 sekunder), försöker SilentShield leveransen upp till 3 gånger med exponentiell fördröjning (1 minut, 5 minuter, 30 minuter). Efter 3 misslyckade försök markeras webhooken som misslyckad och syns i Instrumentpanel → Aviseringar → Misslyckade leveranser.
Webhook-hemlighet
Din webhook-hemlighet genereras när du skapar en webhook-slutpunkt i instrumentpanelen. Du kan visa eller återgenerera den under Instrumentpanel → Aviseringar → Webhooks → Redigera.