Formát webhookov
SilentShield môže odosielať upozornenia v reálnom čase na váš server prostredníctvom webhookov. Nakonfigurujte URL adresy webhookov v Panel → Upozornenia.
Štruktúra údajov
Všetky údaje webhookov majú túto štruktúru:
{"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"}}Typy udalostí
| Event | Description |
|---|---|
bot_detected | Spustené, keď je požiadavka klasifikovaná ako bot. |
bot_spike | Spustené, keď detekcie botov prekročia prah upozornenia v nakonfigurovanom okne. |
quota_warning | Spustené, keď využitie kvóty dosiahne 80 % alebo 90 %. |
quota_exceeded | Spustené, keď je mesačná kvóta prekročená. |
domain_verification_failed | Spustené, keď opätovná kontrola overenia domény zlyhá. |
key_rotated | Spustené, keď je API kľúč rotovaný. |
Overenie podpisu
Každý webhook obsahuje hlavičku X-SilentShield-Signature s podpisom HMAC-SHA256. Overte tento podpis, aby ste sa uistili, že webhook je autentický.
- Získajte surové telo požiadavky (ako reťazec, pred parsovaním)
- Získajte hodnotu hlavičky X-SilentShield-Signature
- Vypočítajte HMAC-SHA256 tela pomocou vášho tajného kľúča webhooku
- Porovnajte vypočítaný podpis s hodnotou hlavičky
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 opakovania
Ak váš koncový bod vráti stavový kód iný ako 2xx alebo vyprší časový limit (10 sekúnd), SilentShield opakuje doručenie až 3-krát s exponenciálnym oneskorením (1 minúta, 5 minút, 30 minút). Po 3 neúspešných pokusoch je webhook označený ako neúspešný a viditeľný v Panel → Upozornenia → Neúspešné doručenia.
Tajný kľúč webhooku
Váš tajný kľúč webhooku je vygenerovaný pri vytvorení koncového bodu webhooku v paneli. Môžete ho zobraziť alebo znovu vygenerovať v Panel → Upozornenia → Webhooky → Upraviť.