Retour au blog

5 conseils essentiels pour sécuriser vos webhooks

Les webhooks envoient des notifications de paiement en temps réel directement à votre serveur. Mal implémentés, ils peuvent toutefois devenir une faille de sécurité. Voici cinq pratiques essentielles.

1. Vérifiez toujours la signature

Chaque webhook InzoPay comporte un en-tête InzoPay-Signature avec une signature HMAC-SHA256. Vérifiez-la toujours avec le secret de signature de votre point de terminaison avant de traiter l'événement. Consultez notre guide de vérification de la signature.

2. Contrôlez l'horodatage

Vérifiez que l'horodatage du webhook (t=) ne s'écarte pas de plus de 5 minutes de l'heure actuelle. Cela empêche les attaques par rejeu, où un attaquant renvoie un webhook capturé.

3. Répondez 200 rapidement

Traitez les webhooks de façon asynchrone. Renvoyez immédiatement une réponse 200, puis gérez l'événement en arrière-plan. Si votre serveur met plus de 10 secondes, InzoPay considérera l'envoi comme échoué.

4. Gérez les événements en double

À cause des nouvelles tentatives, votre point de terminaison peut recevoir plusieurs fois le même événement. Utilisez l'identifiant de l'événement (event.id) pour assurer l'idempotence — ne retraitez pas un événement déjà traité.

5. N'utilisez que HTTPS

InzoPay n'envoie des webhooks qu'à des points de terminaison HTTPS. N'utilisez jamais HTTP pour vos points de terminaison de webhook en production.