SommaireVérifier la signature

Vérifier la signature

Authentifiez le corps brut d’un webhook avant tout traitement.

Corps brut

L’en-tête X-Signature suit le format t=<unix>,v1=<hex>[,v1=<hex>]. Pour chaque valeur v1, calculez hex(HMAC-SHA256(secret, "<t>.<corps-brut>")) sur les octets reçus avant toute conversion JSON. Comparez les valeurs en temps constant.

Refusez une signature lorsque l’écart entre t et l’heure courante dépasse 300 secondes. Dédupliquez aussi l’identifiant X-Event-Id : la fenêtre temporelle ne remplace pas la protection contre les rejeux.

Le SDK TypeScript expose verifyWebhook(corpsBrut, signature, secret) et applique cette fenêtre par défaut.

Rotation

Lors d’une rotation, lien.to envoie deux valeurs v1 pendant le chevauchement. Acceptez la signature correspondant au secret courant ou précédent jusqu’à previousSecretValidUntil. Retirez ensuite l’ancien secret de votre gestionnaire de secrets.