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
| Event | Description |
|---|---|
bot_detected | Sproži se, ko je zahteva razvrščena kot bot. |
bot_spike | Sproži se, ko zaznave botov presežejo prag opozorila v konfiguriranem oknu. |
quota_warning | Sproži se, ko poraba kvote doseže 80 % ali 90 %. |
quota_exceeded | Sproži se, ko je vaša mesečna kvota presežena. |
domain_verification_failed | Sproži se, ko ponovna preverba domene ne uspe. |
key_rotated | Sprož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.
- Pridobite neobdelano telo zahteve (kot niz, pred razčlenjevanjem)
- Pridobite vrednost glave X-SilentShield-Signature
- Izračunajte HMAC-SHA256 telesa z uporabo vaše skrivnosti webhooka kot ključa
- 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.