Формат на уебхукове
SilentShield може да изпраща известия в реално време към вашия сървър чрез уебхукове. Конфигурирайте URL адресите за уебхукове в Табло → Известия.
Структура на данните
Всички данни на уебхуковете следват тази структура:
{"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"}}Типове събития
| Event | Description |
|---|---|
bot_detected | Задейства се, когато заявка е класифицирана като бот. |
bot_spike | Задейства се, когато откритията на ботове надхвърлят прага за известие в конфигурирания прозорец. |
quota_warning | Задейства се, когато използването на квотата достигне 80% или 90%. |
quota_exceeded | Задейства се, когато месечната ви квота е надвишена. |
domain_verification_failed | Задейства се, когато повторна проверка на домейн е неуспешна. |
key_rotated | Задейства се, когато API ключ е ротиран. |
Верификация на подпис
Всеки уебхук включва заглавка X-SilentShield-Signature, съдържаща HMAC-SHA256 подпис. Верифицирайте този подпис, за да се уверите, че уебхукът е автентичен.
- Вземете необработеното тяло на заявката (като низ, преди парсване)
- Вземете стойността на заглавката X-SilentShield-Signature
- Изчислете HMAC-SHA256 на тялото, използвайки вашата тайна за уебхук като ключ
- Сравнете изчисления подпис със стойността на заглавката
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)
);
}Политика за повторни опити
Ако вашата крайна точка върне статус код, различен от 2xx, или изтече времето (10 секунди), SilentShield повтаря доставката до 3 пъти с експоненциално забавяне (1 минута, 5 минути, 30 минути). След 3 неуспешни опита уебхукът се маркира като неуспешен и е видим в Табло → Известия → Неуспешни доставки.
Тайна на уебхука
Вашата тайна за уебхук се генерира при създаване на крайна точка за уебхук в таблото. Можете да я видите или генерирате отново в Табло → Известия → Уебхукове → Редактиране.