Chaque requête vers un endpoint personnalisé est signée avec le secret de votre endpoint. Vérifiez la signature avant de faire confiance au corps de la requête.
Comment c’est signé
- La signature est un HMAC-SHA256 du corps brut de la requête, généré avec votre secret de signature.
- Elle est envoyée sous la forme
X-Studio-Signature: sha256=<hex digest>. - Les secrets commencent par
whsec_. Retrouvez le vôtre dans Signing secret sur la page de l’endpoint.
Node.js
import { createHmac, timingSafeEqual } from "node:crypto"
export function verify(rawBody: string, header: string, secret: string) {
const expected = `sha256=${createHmac("sha256", secret).update(rawBody).digest("hex")}`
const a = Buffer.from(header)
const b = Buffer.from(expected)
return a.length === b.length && timingSafeEqual(a, b)
}
Python
import hashlib, hmac
def verify(raw_body: bytes, header: str, secret: str) -> bool:
expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(header, expected)
Erreurs courantes
- Hachez exactement les octets que vous avez reçus. Analyser le JSON puis le sérialiser à nouveau modifie les octets, donc la signature ne correspondra pas.
- Utilisez une comparaison en temps constant, comme dans les exemples ci-dessus, au lieu de
==. - Après Rotate secret, mettez immédiatement à jour votre serveur. L’ancien secret ne fonctionne plus.
Les destinations de type application de chat, comme Slack, reçoivent à la place un message mis en forme et ne sont pas signées.
Cela vous a-t-il été utile ?
Publiez des posts cohérents avec votre marque en quelques minutes
Retour à la documentationContenu IA, planification, engagement et une suite marketing complète — gratuit pour commencer.
Commencer gratuitement









