Aller au contenu

Webhooks et intégrations

Vérifier une signature de webhook

Calculez la signature sur le corps brut de la requête, avant tout parsing JSON, et comparez en temps constant. Re-sérialiser la charge utile change les octets, et la signature ne correspondra alors plus jamais.

Étapes

  1. Capturez le corps brut en octets. La plupart des frameworks vous donnent par défaut un objet déjà parsé, ce qui est trop tard.
  2. Calculez la signature sur exactement ces octets avec le secret de votre point de réception.
  3. Comparez avec une comparaison à temps constant plutôt qu’avec une égalité de chaînes.
  4. Ne parsez le JSON qu’une fois la signature vérifiée.
  5. Rejetez tout échec, et journalisez l’identifiant de livraison plutôt que le corps.

Comment vérifier le résultat

Une vraie livraison passe la vérification, et la même charge utile avec un caractère changé ne passe pas.

Ce qui coince le plus souvent

  • Parser puis re-sérialiser avant de calculer la signature.
  • Un middleware de parsing qui consomme le flux avant votre gestionnaire.
  • Un simple === sur la signature, qui fuit par le temps.
Cela a-t-il réglé votre problème ?

Cela n’a pas aidé

Écrivez-nous en précisant la plateforme et la version, les étapes suivies, le résultat attendu et l’espace de travail ou le QR code concerné. Masquez tout secret avant de joindre quoi que ce soit.

Écrire à l’assistance