ForHosting KIT · Outils pour développeurs

Vérifier une signature webhook HMAC étape par étape

La vérification des signatures webhook échoue souvent aux interfaces : le framework modifie le corps, l’en-tête est analysé sans rigueur ou une comparaison ordinaire divulgue des informations temporelles.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Cette capacité convertit l’algorithme HMAC et l’en-tête du fournisseur en liste précise et ordonnée. Elle ne demande ni charge utile, ni secret, ni signature. Utilisez le résultat pour créer ou auditer votre endpoint, puis vérifiez le format horodaté, l’encodage et la tolérance aux rejeux dans la documentation officielle.

Commencez par les octets signés par le fournisseur

Conservez exactement les octets reçus avant toute analyse. Analyser puis sérialiser JSON peut modifier espaces, ordre, échappements, Unicode ou fins de ligne. Lisez l’en-tête indiqué sans tenir compte de la casse de son nom, mais validez strictement sa valeur. Le fournisseur peut transmettre un condensé seul ou inclure version, date et plusieurs signatures. Suivez sa grammaire, refusez toute valeur absente, vide, dupliquée ou mal formée et gardez le secret dans un gestionnaire protégé.

Reconstruisez, calculez et comparez dans le bon ordre

Reconstituez exactement le message signé : corps brut seul, ou date suivie d’un séparateur et du corps. Respectez l’ordre et l’encodage documentés. Calculez le HMAC avec le secret et l’algorithme normalisé, puis encodez le résultat comme demandé. Décodez les deux signatures en tableaux d’octets de même longueur et employez une comparaison en temps constant. Un encodage incorrect ou une longueur différente entraîne un rejet, jamais un rognage ou un remplissage.

Intégrez la cryptographie au processus d’acceptation

Un HMAC identique prouve la connaissance du secret, mais pas la fraîcheur ni l’unicité du message. Appliquez la tolérance horodatée recommandée, mémorisez les identifiants acceptés et rendez le traitement idempotent. Faites tourner les secrets selon la période de chevauchement prévue. Refusez avant toute mise en file, renvoyez une erreur générique et journalisez seulement des codes sûrs. Testez corps modifiés, dates périmées, en-têtes invalides, mauvais secrets et événements rejoués.

Créer un nouvel endpoint webhook

Convertissez l’algorithme et l’en-tête en liste contrôlable avant de programmer.

Auditer une intégration existante

Vérifiez l’ordre de capture, calcul HMAC, comparaison sûre et défense antirejeu.

Préparer des tests de sécurité

Déduisez des tests négatifs pour en-têtes absents, corps modifiés, signatures invalides, dates périmées et rejeux.

Cet outil vérifie-t-il un vrai webhook ?

Non. Il produit des étapes et ne demande jamais de charge utile, secret ou signature.

Quels algorithmes sont reconnus ?

HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 et HMAC-SHA512. Tout autre algorithme provoque une erreur d’entrée.

Pourquoi conserver le corps brut ?

L’analyse et la resérialisation peuvent modifier ses octets et invalider une signature correcte.

Un HMAC valide empêche-t-il les rejeux ?

Non. Contrôlez la date signée et dédupliquez les identifiants fournis.

Dois-je transmettre le secret webhook ?

Non. Seuls l’algorithme et l’en-tête sont requis ; gardez le secret dans votre environnement protégé.

Quel est le prix d’une requête API ?

Chaque requête coûte $0.002. L’implémentation déterministe s’exécute dans le navigateur sans transmettre de secrets.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/security/webhook-signature-verify-steps

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/security/webhook-signature-verify-steps \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"algorithm":"HMAC-SHA256","header_name":"X-Webhook-Signature"}'
{
  "algorithm": "HMAC-SHA256",
  "header_name": "X-Webhook-Signature"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "security.webhook_signature_verify_steps",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →