Votre clé de signature
Quand vous activez les webhooks pour la première fois, Boble génère une clé de signature pour votre tenant. La même clé sert à signer les livraisons de toutes les promotions auxquelles vous attachez un webhook. Vous la récupérez depuis votre dashboard et vous pouvez la régénérer à tout moment.L’en-tête Boble-Signature
Chaque livraison transporte un en-tête de cette forme :
t— le timestamp Unix en secondes au moment où Boble a émis l’événement. Identique au champcreateddu body.v1— la signature : un HMAC-SHA256 en hexadécimal minuscule sur la chaîne<t>.<rawBody>, avec votre clé de signature.
Comment vérifier
La vérification tient en trois étapes :Recalculer la signature de votre côté
Calculez
HMAC-SHA256(secret, "<t>.<rawBody>") et encodez en hexadécimal.- La signature est calculée sur les octets bruts du body, exactement comme Boble vous les a envoyés. Si votre framework parse le JSON et le re-sérialise avant que vous ne vérifiez la signature, vous obtiendrez une chaîne différente et la vérification échouera. Capturez le body brut avant tout middleware JSON.
- La comparaison doit être en temps constant. N’utilisez pas une égalité de chaîne classique — la plupart des langages fournissent une fonction dédiée (
crypto.timingSafeEqual,hmac.compare_digest,hash_equals, etc.). - Il est aussi recommandé de rejeter les événements dont le
ta plus de quelques minutes (5 minutes est une bonne valeur par défaut). Ça bloque les attaques par rejeu où quelqu’un capturerait un body signé valide et le rejouerait plus tard.
Régénérer la clé de signature
Vous pouvez régénérer la clé de signature depuis votre dashboard à tout moment. Dès que vous le faites :- L’ancienne clé cesse immédiatement de signer les nouveaux événements.
- Tout événement que Boble s’apprêtait à envoyer est signé avec la nouvelle clé.
- Déployez la nouvelle clé sur votre receveur en premier.
- Puis déclenchez la rotation depuis votre dashboard.