Skip to main content
Vérifier les signatures des webhooks est essentiel pour la sécurité. Cela garantit que le webhook provient bien de storekit et qu’il n’a pas été altéré.

Pourquoi vérifier ?

Puisque votre endpoint webhook est accessible publiquement, n’importe qui pourrait lui envoyer des requêtes en se faisant passer pour storekit. La vérification de signature empêche :
  • Les requêtes falsifiées : des attaquants envoyant de faux webhooks
  • Les attaques par rejeu : d’anciens webhooks renvoyés de manière malveillante
  • L’altération des données : la modification des payloads webhook en transit

Utiliser les bibliothèques Svix (recommandé)

Nous recommandons d’utiliser les bibliothèques officielles Svix pour la vérification, qui gèrent toute la complexité pour vous :
Utilisez toujours le corps brut de la requête pour la vérification. Si vous parsez d’abord le JSON puis le stringifiez à nouveau, la signature ne correspondra pas en raison de différences de formatage potentielles.

Vérification manuelle

Si vous préférez vérifier les signatures manuellement sans utiliser la bibliothèque Svix, suivez les étapes ci-dessous.

En-têtes de signature

Chaque webhook inclut les en-têtes suivants pour la vérification :

Étapes de vérification

1. Extraire les en-têtes

2. Vérifier l’horodatage (empêcher les attaques par rejeu)

Rejetez les webhooks dont l’horodatage est plus ancien que 5 minutes :

3. Créer le contenu signé

Concaténez l’ID du webhook, l’horodatage et le corps :

4. Calculer la signature attendue

Utilisez HMAC-SHA256 avec votre secret webhook :

5. Comparer les signatures