Webhook-Format

SilentShield kann Echtzeit-Benachrichtigungen per Webhook an Ihren Server senden. Konfigurieren Sie Webhook-URLs unter Dashboard → Benachrichtigungen.

Payload-Struktur

Alle Webhook-Payloads folgen dieser Struktur:

{"event": "bot_detected", "timestamp": "2025-01-15T10:30:00Z", "data": {"keyId": "key_abc", "domain": "beispiel.de", "ip": "203.0.113.42", "verdict": "bot", "score": 0.15, "userAgent": "Mozilla/5.0...", "page": "/kontakt"}}

Event-Typen

EventDescription
bot_detectedWird ausgelöst, wenn eine Anfrage als Bot klassifiziert wird.
bot_spikeWird ausgelöst, wenn Bot-Erkennungen Ihren Alert-Schwellenwert innerhalb des konfigurierten Zeitfensters überschreiten.
quota_warningWird ausgelöst, wenn der Kontingentverbrauch 80% oder 90% erreicht.
quota_exceededWird ausgelöst, wenn Ihr monatliches Kontingent überschritten wird.
domain_verification_failedWird ausgelöst, wenn eine Domain-Re-Verifizierungsprüfung fehlschlägt.
key_rotatedWird ausgelöst, wenn ein API-Key rotiert wird.

Signatur-Verifizierung

Jeder Webhook enthält einen X-SilentShield-Signature Header mit einer HMAC-SHA256-Signatur. Verifizieren Sie diese Signatur, um die Authentizität des Webhooks sicherzustellen.

  1. Den rohen Request-Body erhalten (als String, vor dem Parsen)
  2. Den X-SilentShield-Signature Header-Wert auslesen
  3. HMAC-SHA256 des Bodys mit Ihrem Webhook-Secret als Schlüssel berechnen
  4. Die berechnete Signatur mit dem Header-Wert vergleichen
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)
  );
}

Wiederholungsrichtlinie

Wenn Ihr Endpunkt einen Nicht-2xx-Statuscode zurückgibt oder das Timeout überschreitet (10 Sekunden), wiederholt SilentShield die Zustellung bis zu 3 Mal mit exponentiellem Backoff (1 Minute, 5 Minuten, 30 Minuten). Nach 3 fehlgeschlagenen Versuchen wird der Webhook als fehlgeschlagen markiert und ist unter Dashboard → Benachrichtigungen → Fehlgeschlagene Zustellungen sichtbar.

Webhook-Secret

Ihr Webhook-Secret wird generiert, wenn Sie einen Webhook-Endpunkt im Dashboard erstellen. Sie können es unter Dashboard → Benachrichtigungen → Webhooks → Bearbeiten einsehen oder neu generieren.