Формат на уебхукове

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

Типове събития

EventDescription
bot_detectedЗадейства се, когато заявка е класифицирана като бот.
bot_spikeЗадейства се, когато откритията на ботове надхвърлят прага за известие в конфигурирания прозорец.
quota_warningЗадейства се, когато използването на квотата достигне 80% или 90%.
quota_exceededЗадейства се, когато месечната ви квота е надвишена.
domain_verification_failedЗадейства се, когато повторна проверка на домейн е неуспешна.
key_rotatedЗадейства се, когато API ключ е ротиран.

Верификация на подпис

Всеки уебхук включва заглавка X-SilentShield-Signature, съдържаща HMAC-SHA256 подпис. Верифицирайте този подпис, за да се уверите, че уебхукът е автентичен.

  1. Вземете необработеното тяло на заявката (като низ, преди парсване)
  2. Вземете стойността на заглавката X-SilentShield-Signature
  3. Изчислете HMAC-SHA256 на тялото, използвайки вашата тайна за уебхук като ключ
  4. Сравнете изчисления подпис със стойността на заглавката
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 неуспешни опита уебхукът се маркира като неуспешен и е видим в Табло → Известия → Неуспешни доставки.

Тайна на уебхука

Вашата тайна за уебхук се генерира при създаване на крайна точка за уебхук в таблото. Можете да я видите или генерирате отново в Табло → Известия → Уебхукове → Редактиране.