Format webhooka

SilentShield lahko pošilja obvestila v realnem času na vaš strežnik prek webhookov. Konfigurirajte URL-je webhookov v Nadzorna plošča → Obvestila.

Struktura podatkov

Vsi podatki webhookov sledijo tej strukturi:

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

Vrste dogodkov

EventDescription
bot_detectedSproži se, ko je zahteva razvrščena kot bot.
bot_spikeSproži se, ko zaznave botov presežejo prag opozorila v konfiguriranem oknu.
quota_warningSproži se, ko poraba kvote doseže 80 % ali 90 %.
quota_exceededSproži se, ko je vaša mesečna kvota presežena.
domain_verification_failedSproži se, ko ponovna preverba domene ne uspe.
key_rotatedSproži se, ko je API ključ rotiran.

Preverjanje podpisa

Vsak webhook vključuje glavo X-SilentShield-Signature, ki vsebuje podpis HMAC-SHA256. Preverite ta podpis, da zagotovite pristnost webhooka.

  1. Pridobite neobdelano telo zahteve (kot niz, pred razčlenjevanjem)
  2. Pridobite vrednost glave X-SilentShield-Signature
  3. Izračunajte HMAC-SHA256 telesa z uporabo vaše skrivnosti webhooka kot ključa
  4. Primerjajte izračunani podpis z vrednostjo glave
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)
  );
}

Politika ponovnih poskusov

Če vaša končna točka vrne statusno kodo, ki ni 2xx, ali poteče čas (10 sekund), SilentShield ponovi dostavo do 3-krat z eksponentnim odlogom (1 minuta, 5 minut, 30 minut). Po 3 neuspelih poskusih je webhook označen kot neuspešen in viden v Nadzorna plošča → Obvestila → Neuspele dostave.

Skrivnost webhooka

Vaša skrivnost webhooka se ustvari ob ustvarjanju končne točke webhooka na nadzorni plošči. Lahko jo ogledate ali regenerirate v Nadzorna plošča → Obvestila → Webhooki → Uredi.