Webhooks

Vérifier les signatures des webhooks

Vérifiez l’en-tête X-Studio-Signature afin de ne faire confiance qu’aux requêtes que nous avons envoyées.

11 oct. 20261 min de lecture

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

Contenu IA, planification, engagement et une suite marketing complète — gratuit pour commencer.

Commencer gratuitement
Retour à la documentation

Continuer la lecture

Mettez-le en pratique dans AeroReply

Tous les outils vivent dans le même compte, à partir de l’offre gratuite.

Mettez-le en pratique

Commencez gratuitement — concevez, planifiez et développez-vous depuis un seul espace de travail.

  • Aucune carte bancaire
  • Configuration en 2 minutes
  • Annulez à tout moment