colisdocs

Un livrable confidentiel

Un mot de passe que le client tape une fois, une durée courte, et un code qui disparaît au premier téléchargement.

Le problème

Un contrat, des accès, un export de fichier clients : le lien ne doit pas traîner des mois dans une boîte mail, ni fonctionner pour quelqu’un d’autre.

La démarche

Sur la page d’envoi, avant d’envoyer :

  • Durée de conservation : la plus courte qui convient, de dix minutes au maximum du déploiement.
  • Mot de passe pour ce colis : quatre caractères au moins. Il est haché avec scrypt, jamais stocké en clair, jamais récupérable.
  • Détruire après le premier téléchargement : l’aperçu reste gratuit ; le téléchargement consomme le code.

Depuis un terminal, les mêmes options passent en en-têtes :

curl -X POST https://votre-livraison.vercel.app/api/transfers \
  -H "authorization: Bearer $DROP_PASSWORD" \
  -H 'content-type: application/pdf' \
  -H "x-colis-filename: $(printf %s contrat.pdf | jq -sRr @uri)" \
  -H 'x-drop-expires-in: 3600' -H 'x-drop-once: 1' \
  -H 'x-drop-passphrase: open%20sesame' \
  --data-binary @contrat.pdf

Le client ouvre le lien : la page ne dit rien d’autre que « protégé » tant que le mot de passe n’est pas tapé. Ensuite seulement, l’aperçu, le nom, la taille. Depuis un terminal, il passe le mot de passe avec colis recevoir <code> --remote … --token <mot de passe>.

À surveiller

  • Deux canaux. Envoyez le code par un canal et le mot de passe par un autre. Le code seul ne vaut alors plus rien.
  • Les essais sont limités. Dix mauvais mots de passe depuis un même client, ou cinquante sur un même code, le verrouillent quinze minutes. Les compteurs vivent dans la mémoire de chaque instance : sur un hébergement serverless, ils ralentissent les essais plus qu’ils ne les arrêtent.
  • Un seul téléchargement. Deux téléchargements lancés en même temps ne l’obtiennent pas tous les deux : le premier réserve le code par une écriture conditionnelle. Un téléchargement coupé à mi-chemin a quand même consommé le code.
  • Un mot de passe perdu est perdu. Personne ne peut le relire ni le réinitialiser, pas même vous. Le colis n’est alors plus qu’un fichier qui expire.
  • L’accusé survit. Le client peut encore valider après la destruction : l’accusé de réception vit plus longtemps que le fichier.

Sur cette page