Format des webhooks

SilentShield peut envoyer des notifications en temps réel à votre serveur via des webhooks. Configurez les URLs de webhook dans Tableau de bord → Notifications.

Structure du payload

Tous les payloads de webhook suivent cette structure :

{"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"}}

Types d'événements

EventDescription
bot_detectedDéclenché lorsqu'une requête est classée comme bot.
bot_spikeDéclenché lorsque les détections de bots dépassent votre seuil d'alerte dans la fenêtre configurée.
quota_warningDéclenché lorsque l'utilisation du quota atteint 80 % ou 90 %.
quota_exceededDéclenché lorsque votre quota mensuel est dépassé.
domain_verification_failedDéclenché lorsqu'une re-vérification de domaine échoue.
key_rotatedDéclenché lorsqu'une API key est renouvelée.

Vérification de la signature

Chaque webhook inclut un en-tête X-SilentShield-Signature contenant une signature HMAC-SHA256. Vérifiez cette signature pour vous assurer que le webhook est authentique.

  1. Récupérez le corps brut de la requête (en tant que chaîne, avant l'analyse)
  2. Récupérez la valeur de l'en-tête X-SilentShield-Signature
  3. Calculez le HMAC-SHA256 du corps en utilisant votre secret webhook comme clé
  4. Comparez la signature calculée avec la valeur de l'en-tête
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)
  );
}

Politique de réessai

Si votre endpoint renvoie un code de statut non-2xx ou expire (10 secondes), SilentShield réessaie la livraison jusqu'à 3 fois avec un backoff exponentiel (1 minute, 5 minutes, 30 minutes). Après 3 tentatives échouées, le webhook est marqué comme échoué et visible dans Tableau de bord → Notifications → Livraisons échouées.

Secret du webhook

Votre secret webhook est généré lorsque vous créez un endpoint webhook dans le tableau de bord. Vous pouvez le consulter ou le régénérer dans Tableau de bord → Notifications → Webhooks → Modifier.