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

EventDescription
bot_detectedUdløses når en forespørgsel klassificeres som bot.
bot_spikeUdløses når botdetekteringer overstiger din advarselsgrænse inden for det konfigurerede vindue.
quota_warningUdløses når kvotaforbrug når 80 % eller 90 %.
quota_exceededUdløses når din månedlige kvota overskrides.
domain_verification_failedUdløses når en domænegenverificering fejler.
key_rotatedUdlø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.

  1. Hent den rå forespørgselskrop (som streng, før parsing)
  2. Hent værdien af X-SilentShield-Signature-headeren
  3. Beregn HMAC-SHA256 af kroppen med din webhook-hemmelighed som nøgle
  4. 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.