---
title: "Envoyer un secret de signature de webhook à un client"
url: https://uselinkpilot.com/fr/blog/how-to-send-a-webhook-signing-secret-to-a-client-securely
description: "Transmettre un secret de signature de webhook sans copie dans les e-mails ni les tickets : vérifier le destinataire, lien à usage unique, stockage, renouvellement."
lang: fr
---

Sécurité (https://uselinkpilot.com/fr/blog/category/security)

# Envoyer un secret de signature de webhook à un client en toute sécurité

Transmettre un secret de signature de webhook sans copie dans les e-mails ni les tickets: vérifier le destinataire, lien à usage unique, stockage, renouvellement.

LinkPilot Team (https://uselinkpilot.com/fr/author/linkpilot-team) · Les personnes qui développent et exploitent LinkPilot chez TetraCore, LLC 25 octobre 2026 · À propos de LinkPilot (https://uselinkpilot.com/fr/about)

Un secret de signature de webhook est un identifiant, pas un simple détail de configuration. Envoyez-le comme un mot de passe: vérifiez qui le reçoit, transmettez-le par un canal qui n’en garde aucune copie et assurez-vous qu’il finit dans un gestionnaire de secrets plutôt que dans un ticket. En bref: un lien secret à usage unique (https://uselinkpilot.com/fr/tools/free-secret-link-generator) envoyé à un contact vérifié, et les instructions de configuration envoyées à part.

La suite de ce guide traite du choix du canal, des vérifications avant l’envoi, de ce que le client doit faire de la valeur, puis du renouvellement et du dépannage, sans jamais recoller le secret.

## Quel canal doit transporter le secret?

Choisissez le canal en vous posant deux questions: pouvez-vous vérifier qui est en mesure de l’ouvrir, et combien de copies laisse-t-il derrière lui? L’e-mail et la messagerie échouent à la seconde, car chaque message est conservé, synchronisé et exporté bien après la fin de la transmission.

| Méthode | Ce qu’elle apporte | À vérifier avant l’envoi |
| --- | --- | --- |
| Portail client authentifié | Accès nominatif que vous pouvez révoquer | Le compte appartient au bon contact |
| Lien secret à usage unique | Détruit après une ouverture, rien ne reste dans le message | L’adresse à laquelle vous l’envoyez, vérifiée séparément |
| Messagerie chiffrée | Protection pendant le transit | Qui d’autre peut ouvrir cette conversation |

**Un portail client avec des comptes individuels** est un bon premier choix quand il existe. Donnez l’accès à une personne nommée, pas à un fil de projet partagé, et retirez-le une fois la transmission terminée.

**Un lien à usage unique** tient l’identifiant à l’écart de l’e-mail ou du message qui sert à vous coordonner. Avec LinkPilot, le secret est chiffré dans votre navigateur avant d’être stocké, la copie stockée est détruite après une ouverture, et vous pouvez régler l’expiration du lien sur une heure, un jour ou une semaine. Les forfaits Pro ajoutent une phrase de passe, que vous communiquez par un autre canal. Ces contrôles encadrent la transmission. Ils ne remplacent pas la vérification de la personne à l’autre bout.

**La messagerie chiffrée** est la solution de repli quand aucune des deux options précédentes n’est praticable. Le chiffrement en transit ne corrige ni un message mal adressé ni un groupe trop large, donc la vérification du destinataire compte encore plus.

Quel que soit votre choix, réservez l’e-mail et la messagerie en clair à la coordination. Même les services qui chiffrent en transit gardent hors de votre contrôle la conservation, les sauvegardes et l’accès aux comptes.

## Vérifier le client et le destinataire

Un canal sécurisé ne sert à rien si le secret arrive dans la mauvaise boîte. Avant l’envoi, confirmez que la personne qui le demande est responsable de l’intégration et que le canal prévu lui appartient vraiment.

- **Confirmez l’identité à partir d’une source connue.** Utilisez une fiche de contact fiable, une relation commerciale existante ou la procédure habituelle du client. Un nouveau demandeur, un changement soudain d’interlocuteur ou une urgence inhabituelle justifient une vérification indépendante.
- **Lisez l’adresse caractère par caractère,** surtout si vous la copiez depuis un ticket ou un message récent. C’est avec les noms qui se ressemblent et les boîtes partagées que les erreurs arrivent.
- **Regardez qui d’autre a accès.** Avant de partager par un portail ou un espace de travail, consultez la liste des membres et retirez ceux qui n’ont pas besoin de l’identifiant.
- **Confirmez la réception par un second canal.** Si le lien est parti par e-mail, demandez sur un numéro de téléphone connu ou sur le canal habituel du projet si l’accès a fonctionné. N’incluez pas le secret dans ce message.

Partagez le secret avec la seule personne qui configurera l’endpoint, et laissez-la le placer dans le gestionnaire de secrets du client. Si plusieurs ingénieurs en ont besoin, ce sont les contrôles d’accès de ce gestionnaire qui doivent régler qui le voit, pas des copies distinctes envoyées à chacun.

## Préparer le secret avant la transmission

Décidez à quoi l’identifiant est rattaché, où le client doit le conserver et combien de temps la transmission reste ouverte. Cette préparation rend le renouvellement et le dépannage bien plus simples par la suite.

- **Un secret par client ou par endpoint.** Avec un secret réutilisé, une seule fuite touche toutes les intégrations qui partagent la valeur, et le renouveler pour un client les perturbe toutes. Notez en interne à quel endpoint appartient chaque secret, sans recopier la valeur dans les notes de projet.
- **Stockez votre propre copie dans un gestionnaire de secrets.** Pas dans un fichier texte local, un ticket ou un document partagé. La même discipline s’applique au partage de clés API (https://uselinkpilot.com/fr/blog/how-to-share-api-keys-securely): limitez qui peut atteindre l’identifiant et gardez la transmission brève.
- **Fixez une fenêtre de récupération.** Laissez au client le temps de récupérer la valeur et de terminer la configuration, pas plus. Un lien qui se détruit après une ouverture et expire au bout d’un jour suffit pour la plupart des transmissions; si la fenêtre est passée, créez-en un nouveau au lieu de rouvrir l’ancien.
- **Envoyez les instructions de configuration à part.** L’URL de l’endpoint, l’en-tête de signature et les étapes de vérification ont leur place dans la documentation du client ou sur le canal du projet. Tant qu’elles restent séparées du secret, copier la page d’instructions ne revient pas à copier l’identifiant.

## Aider le client à le stocker et à l’utiliser en toute sécurité

La transmission n’est pas terminée quand le client peut lire la valeur. Elle l’est quand le serveur peut la lire de manière sécurisée et s’en sert pour vérifier les signatures entrantes.

- **Stockez-le dans un gestionnaire de secrets ou une variable d’environnement protégée** que le processus serveur peut lire, avec un accès limité à l’application et aux personnes qui l’exploitent.
- **Tenez-le à l’écart du code source, des logs et des charges utiles des webhooks.** Le secret sert à calculer ou à vérifier une signature. Il ne circule jamais dans le corps de la requête et ne doit apparaître ni dans la sortie de débogage, ni dans les dépôts, ni dans les tickets de support. Vérifiez ce que capturent vos outils de déploiement avant d’activer des diagnostics détaillés.
- **Vérifiez les signatures sur le serveur.** Le destinataire recalcule la signature sur le corps brut de la requête avec le secret partagé et la compare à l’en-tête défini par l’expéditeur. La signature prouve que la requête est authentique et non modifiée; elle ne chiffre pas la charge utile. Le guide de HackerOne sur la signature des webhooks (https://www.hackerone.com/blog/securely-signing-webhooks-best-practices-your-application) explique pourquoi le corps brut et le bon secret comptent tous les deux.
- **Lancez un événement de test.** Demandez au client de confirmer qu’une signature valide est acceptée et qu’une signature volontairement faussée est rejetée. Cela détecte les erreurs habituelles: le secret d’un autre endpoint, ou un corps analysé avant la vérification. Séparez les identifiants de test et de production lorsque l’intégration le permet.

## Réduire le risque après la transmission

La transmission doit laisser une trace exploitable, pas une série de copies en trop.

- **Notez qui a été autorisé et quand.** Consignez le destinataire, l’endpoint ou le client, et l’heure de la transmission. Jamais la valeur. Si vous ne pouvez pas savoir si un lien a été ouvert ou qui pouvait atteindre un dossier partagé, considérez-le comme une raison de resserrer la procédure la prochaine fois.
- **Renouvelez le secret au moindre soupçon de fuite.** Un secret collé dans un ticket, envoyé à la mauvaise adresse ou retrouvé dans un log n’est plus privé. Générez-en un nouveau, mettez à jour l’endpoint et invalidez l’ancienne valeur. Supprimer un lien de partage n’annule pas une fuite; seul le renouvellement le fait.
- **Convenez dès maintenant de la procédure de renouvellement.** Décidez qui demande, crée et installe le remplaçant, si l’implémentation accepte un court chevauchement et comment vous testerez la nouvelle valeur avant de retirer l’ancienne. Une procédure connue vaut mieux qu’un échange précipité pendant une panne.
- **Faites le ménage.** Une fois la récupération confirmée par le client, révoquez les accès temporaires et supprimez les copies égarées dans les brouillons, les tickets et les notes. Vérifiez les règles de conservation de chaque système concerné: supprimer un message d’une vue l’efface rarement des sauvegardes.

## Dépanner sans exposer le secret

Un problème de transmission ne justifie pas de renvoyer l’identifiant par un canal moins sûr. Déterminez d’abord lequel de ces trois cas se présente: le client ne peut pas récupérer le secret, ne peut pas configurer l’endpoint, ou reçoit les requêtes mais ne peut pas valider les signatures.

- **La récupération a échoué ou la fenêtre a expiré.** Vérifiez de nouveau le destinataire et organisez une nouvelle transmission contrôlée. Ne collez pas la valeur dans un ticket et ne demandez pas au client de vous renvoyer la sienne pour comparaison.
- **Signature non concordante.** C’est presque toujours un problème de données d’entrée de la vérification: le mauvais secret pour cet endpoint, un corps reformaté avant le calcul du hash ou un en-tête mal lu. Demandez au client de tester avec un événement connu au moyen des outils de test de l’expéditeur.
- **Les requêtes n’arrivent jamais.** C’est un problème de livraison ou de routage, pas d’identifiant. Vérifiez les horodatages, les codes de réponse et le choix de l’endpoint avant d’envisager un renouvellement. La documentation sur les webhooks (https://docs.stripe.com/webhooks) de Stripe est un bon modèle pour distinguer l’enregistrement de l’endpoint et la livraison des événements de la vérification de signature.
- **Partagez des diagnostics expurgés.** L’ID de l’événement, l’horodatage, l’endpoint et la catégorie d’erreur suffisent. Retirez le secret, la signature complète lorsqu’elle est sensible et les champs privés de la charge utile, puis contrôlez l’expurgation avant d’envoyer un exemple de requête.

Vérifiez le destinataire, transmettez le secret une seule fois par un canal qui l’oublie, assurez-vous qu’il arrive dans un gestionnaire de secrets et renouvelez-le sans hésiter s’il a pu fuiter. Pour l’usage plus large des liens à usage unique dans le travail des équipes techniques, consultez le partage de liens sécurisés pour les développeurs (https://uselinkpilot.com/fr/blog/secure-link-sharing-for-developers).

## Outils pour cet article

Générateur de liens secrets à usage unique

Partagez un mot de passe ou une note par un lien qui ne s’ouvre qu’une fois.
https://uselinkpilot.com/fr/tools/free-secret-link-generator

Message éphémère

Envoyez une note qui disparaît après une seule lecture.
https://uselinkpilot.com/fr/tools/burn-after-read-secret

Générateur de liens temporaires

Créez des liens qui cessent de fonctionner à l’heure choisie.
https://uselinkpilot.com/fr/tools/temporary-link

## Questions fréquentes

### L’e-mail convient-il parfois pour envoyer un secret de signature de webhook?

### Chaque client doit-il avoir son propre secret de signature?

### Combien de temps un lien de partage de secret doit-il rester disponible?

### Un secret de signature de webhook chiffre-t-il la charge utile du webhook?

### Où le client doit-il stocker le secret?

### Et si le secret a été envoyé à la mauvaise personne?

## LinkPilot envoie un lien secret qui disparaît une fois ouvert.

Chiffré dans votre navigateur, affiché une seule fois, puis détruit. Sans compte.

Créer un lien secret (https://uselinkpilot.com/fr/tools/free-secret-link-generator)

## À lire ensuite

Sécurité

### Envoyer un accès temporaire à une base de données

Créez un utilisateur aux droits limités qui expire, envoyez le mot de passe par un lien à usage unique, verrouillez la connexion et fermez le compte à temps.
https://uselinkpilot.com/fr/blog/how-to-send-a-temporary-database-login-to-a-contractor-securely

Sécurité

### Créer un lien temporaire sécurisé pour partager un fichier

Choisissez le bon lien temporaire, créez-en un qui expire et se détruit après un téléchargement, et joignez vos fichiers à un lien secret sans faux pas.
https://uselinkpilot.com/fr/blog/how-to-create-a-temporary-secure-link-for-sharing-files

Sécurité

### Messages éphémères: Signal, WhatsApp, Telegram ou un lien

Les messages éphémères de Signal, WhatsApp et Telegram: ce que supprime chaque minuteur, ce qu’aucun n’empêche et quand préférer un lien à usage unique.
https://uselinkpilot.com/fr/blog/self-destructing-message-apps

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Accueil",
        "item": "https://uselinkpilot.com/fr"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Blog",
        "item": "https://uselinkpilot.com/fr/blog"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "Envoyer un secret de signature de webhook à un client",
        "item": "https://uselinkpilot.com/fr/blog/how-to-send-a-webhook-signing-secret-to-a-client-securely"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/fr/blog/how-to-send-a-webhook-signing-secret-to-a-client-securely#article",
    "headline": "Envoyer un secret de signature de webhook à un client",
    "description": "Transmettre un secret de signature de webhook sans copie dans les e-mails ni les tickets : vérifier le destinataire, lien à usage unique, stockage, renouvellement.",
    "inLanguage": "fr",
    "datePublished": "2026-10-25",
    "dateModified": "2026-10-25",
    "image": "https://uselinkpilot.com/logo-512.png",
    "author": {
      "@type": "Organization",
      "@id": "https://uselinkpilot.com/author/linkpilot-team#organization",
      "name": "LinkPilot Team",
      "url": "https://uselinkpilot.com/fr/author/linkpilot-team"
    },
    "publisher": {
      "@type": "Organization",
      "name": "LinkPilot",
      "url": "https://uselinkpilot.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://uselinkpilot.com/logo-512.png",
        "width": 512,
        "height": 512
      }
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://uselinkpilot.com/fr/blog/how-to-send-a-webhook-signing-secret-to-a-client-securely"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "L’e-mail convient-il parfois pour envoyer un secret de signature de webhook ?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pas en clair. Un e-mail est transféré, synchronisé sur chaque appareil et conservé dans des sauvegardes que vous ne contrôlez pas. Envoyez un lien secret à usage unique ou utilisez un portail client authentifié, et confirmez le destinataire par un second canal auquel vous faites déjà confiance."
        }
      },
      {
        "@type": "Question",
        "name": "Chaque client doit-il avoir son propre secret de signature ?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Oui. Un secret distinct par client ou par endpoint limite la portée d’une fuite et vous permet de renouveler une intégration sans toucher aux autres."
        }
      },
      {
        "@type": "Question",
        "name": "Combien de temps un lien de partage de secret doit-il rester disponible ?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Le moins longtemps possible pour la transmission. Convenez d’un moment avec le client, envoyez le lien quand il est prêt à le récupérer et créez-en un nouveau si la fenêtre est passée."
        }
      },
      {
        "@type": "Question",
        "name": "Un secret de signature de webhook chiffre-t-il la charge utile du webhook ?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Non. Le secret sert à calculer et à vérifier une signature, pour que le destinataire puisse contrôler que la requête est authentique et non modifiée. La charge utile elle-même circule en clair, sauf si le transport (HTTPS) la protège."
        }
      },
      {
        "@type": "Question",
        "name": "Où le client doit-il stocker le secret ?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dans un gestionnaire de secrets ou une variable d’environnement protégée que le processus serveur peut lire, avec un accès limité à l’application et aux personnes qui l’exploitent. Jamais dans le code source, les logs ou des documents partagés."
        }
      },
      {
        "@type": "Question",
        "name": "Et si le secret a été envoyé à la mauvaise personne ?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Considérez qu’il a fuité. Générez-en un nouveau, mettez à jour la configuration de l’endpoint, invalidez l’ancienne valeur, puis examinez comment le mauvais destinataire a été choisi pour que la prochaine transmission le vérifie."
        }
      }
    ],
    "inLanguage": "fr"
  },
  {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "@id": "https://uselinkpilot.com/#software",
    "name": "LinkPilot",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "Web",
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "url": "https://uselinkpilot.com",
    "offers": [
      {
        "@type": "Offer",
        "name": "Free",
        "price": "0",
        "priceCurrency": "USD",
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro",
        "price": "29",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "29",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency",
        "price": "299",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "299",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus",
        "price": "799",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "799",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro (yearly)",
        "price": "288",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "288",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency (yearly)",
        "price": "2988",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "2988",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus (yearly)",
        "price": "7980",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "7980",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Enterprise",
        "priceSpecification": {
          "@type": "PriceSpecification",
          "priceCurrency": "USD"
        },
        "url": "https://uselinkpilot.com/pricing"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "@id": "https://uselinkpilot.com/#organization",
    "name": "LinkPilot",
    "alternateName": "LinkPilot by TetraCore",
    "url": "https://uselinkpilot.com",
    "contactPoint": {
      "@type": "ContactPoint",
      "contactType": "customer support",
      "email": "support@uselinkpilot.com",
      "url": "https://uselinkpilot.com/support"
    },
    "parentOrganization": {
      "@type": "Organization",
      "@id": "https://tetracorehq.com/#organization",
      "name": "TetraCore",
      "url": "https://tetracorehq.com/"
    },
    "logo": {
      "@type": "ImageObject",
      "url": "https://uselinkpilot.com/logo-512.png",
      "width": 512,
      "height": 512
    },
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "sameAs": [
      "https://x.com/uselinkpilot",
      "https://www.linkedin.com/company/uselinkpilot",
      "https://facebook.com/uselinkpilot",
      "https://github.com/TetraCoreHQ/linkpilot-cli",
      "https://github.com/TetraCoreHQ/linkpilot-mcp",
      "https://www.npmjs.com/package/linkpilot",
      "https://www.npmjs.com/package/@uselinkpilot/sdk",
      "https://www.npmjs.com/package/@uselinkpilot/mcp",
      "https://chromewebstore.google.com/detail/linkpilot-short-links-and/mnmppadihpcncicldpkmgknhnjkondad",
      "https://addons.mozilla.org/en-US/firefox/addon/uselinkpilot/"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "LinkPilot",
    "url": "https://uselinkpilot.com",
    "potentialAction": {
      "@type": "SearchAction",
      "target": "https://uselinkpilot.com/blog?q={search_term_string}",
      "query-input": "required name=search_term_string"
    }
  }
]
```