Webhook-format
SilentShield kan sende realtidsnotifikationer til din server via webhooks. Konfigurér webhook-URL'er i Dashboard → Notifikationer.
Payloadstruktur
Alle webhook-payloads følger denne 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ændelsestyper
| Event | Description |
|---|---|
bot_detected | Udløses når en forespørgsel klassificeres som bot. |
bot_spike | Udløses når botdetekteringer overstiger din advarselsgrænse inden for det konfigurerede vindue. |
quota_warning | Udløses når kvotaforbrug når 80 % eller 90 %. |
quota_exceeded | Udløses når din månedlige kvota overskrides. |
domain_verification_failed | Udløses når en domænegenverificering fejler. |
key_rotated | Udløses når en API-nøgle roteres. |
Signaturverificering
Hver webhook inkluderer en X-SilentShield-Signature-header der indeholder en HMAC-SHA256-signatur. Verificér denne signatur for at sikre, at webhooken er autentisk.
- Hent den rå forespørgselskrop (som streng, før parsing)
- Hent værdien af X-SilentShield-Signature-headeren
- Beregn HMAC-SHA256 af kroppen med din webhook-hemmelighed som nøgle
- Sammenlign den beregnede signatur med headerværdien
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)
);
}Genforsøgspolitik
Hvis dit slutpunkt returnerer en ikke-2xx statuskode eller timeout (10 sekunder), genforsøger SilentShield leverancen op til 3 gange med eksponentiel ventetid (1 minut, 5 minutter, 30 minutter). Efter 3 mislykkede forsøg markeres webhooken som mislykket og er synlig i Dashboard → Notifikationer → Mislykkede leverancer.
Webhook-hemmelighed
Din webhook-hemmelighed genereres, når du opretter et webhook-slutpunkt i dashboardet. Du kan se eller gengenerere den under Dashboard → Notifikationer → Webhooks → Rediger.