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
| Event | Description |
|---|---|
bot_detected | Déclenché lorsqu'une requête est classée comme bot. |
bot_spike | Déclenché lorsque les détections de bots dépassent votre seuil d'alerte dans la fenêtre configurée. |
quota_warning | Déclenché lorsque l'utilisation du quota atteint 80 % ou 90 %. |
quota_exceeded | Déclenché lorsque votre quota mensuel est dépassé. |
domain_verification_failed | Déclenché lorsqu'une re-vérification de domaine échoue. |
key_rotated | Dé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.
- Récupérez le corps brut de la requête (en tant que chaîne, avant l'analyse)
- Récupérez la valeur de l'en-tête X-SilentShield-Signature
- Calculez le HMAC-SHA256 du corps en utilisant votre secret webhook comme clé
- 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.