Webhook-muoto
SilentShield voi lähettää reaaliaikaisia ilmoituksia palvelimellesi webhookien kautta. Määritä webhook-URL-osoitteet kohdassa Hallintapaneeli → Ilmoitukset.
Kuorman rakenne
Kaikki webhook-kuormat noudattavat tätä rakennetta:
{"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"}}Tapahtumatyypit
| Event | Description |
|---|---|
bot_detected | Laukeaa, kun pyyntö luokitellaan botiksi. |
bot_spike | Laukeaa, kun bottitunnistukset ylittävät hälytyskynnyksen määritetyn aikaikkunan sisällä. |
quota_warning | Laukeaa, kun kiintiön käyttö saavuttaa 80 % tai 90 %. |
quota_exceeded | Laukeaa, kun kuukausikiintiösi ylitetään. |
domain_verification_failed | Laukeaa, kun verkkotunnuksen uudelleenvahvistustarkistus epäonnistuu. |
key_rotated | Laukeaa, kun API-avain kierretään. |
Allekirjoituksen vahvistus
Jokainen webhook sisältää X-SilentShield-Signature-otsikon, joka sisältää HMAC-SHA256-allekirjoituksen. Vahvista tämä allekirjoitus varmistaaksesi, että webhook on aito.
- Hae pyyntökehon raakasisältö (merkkijonona, ennen jäsennystä)
- Hae X-SilentShield-Signature-otsikon arvo
- Laske HMAC-SHA256 kehosta käyttämällä webhook-salaisuuttasi avaimena
- Vertaa laskettua allekirjoitusta otsikon arvoon
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)
);
}Uudelleenyritysperiaate
Jos päätepisteesi palauttaa muun kuin 2xx-tilakoodin tai aikakatkaistaan (10 sekuntia), SilentShield yrittää toimitusta uudelleen enintään 3 kertaa eksponentiaalisella viiveellä (1 minuutti, 5 minuuttia, 30 minuuttia). Kolmen epäonnistuneen yrityksen jälkeen webhook merkitään epäonnistuneeksi ja se näkyy kohdassa Hallintapaneeli → Ilmoitukset → Epäonnistuneet toimitukset.
Webhook-salaisuus
Webhook-salaisuutesi luodaan, kun luot webhook-päätepisteen hallintapaneelissa. Voit tarkastella tai uudelleenluoda sen kohdasta Hallintapaneeli → Ilmoitukset → Webhookit → Muokkaa.