Formatul webhook

SilentShield poate trimite notificări în timp real către serverul dumneavoastră prin webhook-uri. Configurați URL-urile webhook în Tablou de bord → Notificări.

Structura datelor

Toate datele webhook urmează această structură:

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

Tipuri de evenimente

EventDescription
bot_detectedSe declanșează când o cerere este clasificată ca bot.
bot_spikeSe declanșează când detectările de boturi depășesc pragul de alertă în fereastra configurată.
quota_warningSe declanșează când utilizarea cotei ajunge la 80% sau 90%.
quota_exceededSe declanșează când cota lunară este depășită.
domain_verification_failedSe declanșează când o verificare de re-verificare a domeniului eșuează.
key_rotatedSe declanșează când o cheie API este rotată.

Verificarea semnăturii

Fiecare webhook include un antet X-SilentShield-Signature care conține o semnătură HMAC-SHA256. Verificați această semnătură pentru a vă asigura că webhook-ul este autentic.

  1. Obțineți corpul brut al cererii (ca șir de caractere, înainte de parsare)
  2. Obțineți valoarea antetului X-SilentShield-Signature
  3. Calculați HMAC-SHA256 al corpului folosind secretul webhook ca cheie
  4. Comparați semnătura calculată cu valoarea antetului
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)
  );
}

Politica de reîncercare

Dacă endpoint-ul returnează un cod de stare diferit de 2xx sau expiră timpul (10 secunde), SilentShield reîncearcă livrarea de până la 3 ori cu backoff exponențial (1 minut, 5 minute, 30 minute). După 3 încercări eșuate, webhook-ul este marcat ca eșuat și vizibil în Tablou de bord → Notificări → Livrări eșuate.

Secretul webhook

Secretul webhook este generat când creați un endpoint webhook în tabloul de bord. Îl puteți vizualiza sau regenera în Tablou de bord → Notificări → Webhook-uri → Editare.