Avant d’envoyer ce fichier HAR, lisez ce qu’il contient

« Pourriez-vous nous envoyer un fichier HAR ? » est une demande raisonnable — et l’un des transferts de fichiers les plus négligemment dangereux du support quotidien. Un fichier HAR est un enregistrement complet d’une session de navigation : chaque requête et chaque réponse, avec les cookies, les en-têtes d’autorisation, les jetons et le contenu des formulaires qui les ont fait fonctionner. C’est exactement ce qu’il faut à un ingénieur support pour reproduire votre problème, et exactement ce qu’un attaquant voudrait pour rejouer votre session. Cet article explique ce qu’est un fichier HAR, comment en capturer un dans Chrome, Edge ou Firefox, ce qu’il laisse fuiter, et comment l’inspecter et l’expurger avant qu’il aille où que ce soit.

Ce qu’est un fichier HAR

HAR — HTTP Archive — est un format JSON d’enregistrement du trafic HTTP, standardisé dans la spécification HAR 1.2 et exporté par les outils de développement de tous les grands navigateurs et par des proxys de débogage comme mitmproxy. Le fichier contient un objet log avec un tableau entries : une entrée par requête, chacune portant la méthode et l’URL complète, les en-têtes de requête et de réponse, les cookies dans les deux sens, la chaîne de requête décomposée en paramètres, tout corps POST, le statut, la taille et le type de contenu de la réponse, et des temps décomposés par phase — DNS, connexion, TLS, envoi, attente, réception.

Autrement dit, ce n’est pas une capture d’écran du problème ; c’est le problème, rejouable. Tout ce qui consomme du trafic HTTP travaille avec ce format — outillage de navigateur, analyseurs de performance, ingénieurs support et, de plus en plus, des agents : la pile REA traitée dans les agents d’IA peuvent-ils rétro-ingénierer votre application ? lit les captures HAR nativement, parce que pour beaucoup d’applications le trafic d’API explique plus que le code. Cette utilité est précisément la raison pour laquelle le fichier mérite une lecture avant de mériter un envoi.

Pourquoi les équipes de support et les fournisseurs en demandent un

Parce qu’il met fin aux discussions. « La page est lente » devient une cascade avec des requêtes nommées et des temps. « L’API échoue » devient la requête exacte qui a renvoyé 500, avec la charge utile exacte et les en-têtes exacts. « Ça marche sur ma machine » cesse de compter, parce que l’enregistrement vient de votre machine, de votre réseau, de votre compte, au moment où ça a cassé. Un bon ingénieur support peut faire davantage avec un fichier HAR honnête qu’avec une semaine de captures d’écran et de souvenirs.

C’est aussi pourquoi la demande est si souvent transférée sans réfléchir. Le ticket dit « joignez un HAR », l’utilisateur en exporte un en trente secondes, et le fichier — enregistré pendant qu’il était connecté, en plein travail réel — se met à voyager : dans un système de tickets, un fil de courriels, parfois un forum public ou un lecteur partagé, accumulant des copies à chaque saut. Personne dans cette chaîne n’est exactement négligent ; le format cache simplement ce qu’il contient. Un fichier .har a l’air d’un diagnostic inerte. Il ressemble plutôt à un trousseau de clés.

Comment en capturer un dans Chrome, Edge ou Firefox

Dans Chrome ou Edge : ouvrez la page, appuyez sur F12 pour les DevTools et allez au panneau Réseau (la référence réseau des Chrome DevTools documente chaque contrôle). Assurez-vous que le bouton d’enregistrement rouge est actif et cochez Conserver le journal si le problème enjambe une navigation. Reproduisez le problème une fois, de bout en bout. Puis cliquez droit sur n’importe quelle requête de la liste et choisissez Tout enregistrer sous HAR avec contenu (Edge le formule comme l’enregistrement du journal réseau). Dans Firefox, le flux a la même forme : DevTools → Réseau, reproduire, clic droit → Tout enregistrer sous HAR.

Deux habitudes de capture comptent plus que n’importe quel réglage. D’abord, enregistrez la session la plus courte qui montre le problème : chaque minute de navigation supplémentaire est du trafic en plus — et des secrets en plus — dans le fichier, y compris ce que d’autres onglets et des requêtes d’arrière-plan étaient en train de faire. Ensuite, si vous le pouvez, reproduisez le problème dans un profil de navigateur neuf ou une fenêtre privée, connecté uniquement au service concerné. Une capture depuis un profil propre ne contient que cette session et rien d’autre : pas d’onglet bancaire, pas de messagerie web, pas de jetons d’autres applications voyageant dedans.

Ce qu’il laisse fuiter

Votre session, d’abord. Les en-têtes Cookie et Set-Cookie et les listes de cookies portent vos identifiants de session, et la plupart des cookies de session sont des identifiants au porteur au sens le plus littéral : quiconque en présente un est traité comme vous jusqu’à expiration ou révocation. L’en-tête Authorization ajoute des jetons au porteur et parfois des identifiants Basic. Rien dans le format ne marque ces valeurs comme spéciales ; ce sont juste des en-têtes, enregistrés fidèlement.

Ensuite, les choses que personne ne considère comme des en-têtes. Les jetons voyagent dans les URL en permanence — clés d’API, liens de réinitialisation de mot de passe et de vérification d’e-mail, URL de téléchargement signées, rappels OAuth — et le HAR enregistre l’URL complète plus la chaîne de requête décomposée pour une lecture facile. Les corps POST portent ce que les formulaires portaient : le mot de passe avec lequel vous vous êtes connecté pendant la capture, des modifications de profil, des messages, des données personnelles. Les corps de réponse peuvent ramener la même classe de données. Un fichier HAR d’une session réelle est, en effet, une transcription partielle de votre compte — c’est pourquoi les outils qui lisent le trafic réseau sur le fil, comme le PCAP Analyzer, et ceux qui le lisent dans le navigateur, comme cette page, sont faits pour montrer les identifiants clairement, afin que vous voyiez ce que vous tenez.

Inspectez-le et expurgez-le avant de l’envoyer

Alors : ouvrez le fichier avant tout le monde. C’est à cela que sert le HAR File Analyzer de ce site — déposez le .har dans la page et il est analysé localement, sur votre appareil, jamais téléversé, avec les valeurs sensibles masquées par défaut : en-têtes Authorization, Cookie et Set-Cookie, chaque valeur de cookie, et tout en-tête, paramètre de requête, champ de formulaire ou clé JSON dont le nom évoque un jeton, une clé, un secret, une session ou un mot de passe. Parcourez le résumé et les requêtes les plus lentes et les plus grosses ; vérifiez quels hôtes apparaissent — une capture contient parfois du trafic de sites que vous ne regardiez même pas — et utilisez l’interrupteur « afficher les valeurs », sur votre écran seulement, si vous devez confirmer ce qu’il y a vraiment dedans.

Puis téléchargez le .har expurgé et envoyez celui-là à la place. L’expurgation conserve la structure dont un ingénieur support a besoin — mêmes entrées, en-têtes, URL comme formes, statuts et temps — et remplace les valeurs d’identifiants par le texte littéral REDACTED, dans les en-têtes, cookies, chaînes de requête, données de formulaire et corps JSON également. Une limite est imprimée sur l’outil et répétée ici : un corps POST qui n’est ni du JSON ni des données de formulaire ordinaires ne peut pas être analysé en sécurité, il est donc repris tel quel — si votre capture contient un tel corps, lisez-le vous-même avant que le fichier voyage. Le résumé CSV masqué existe pour la même raison : c’est le fichier que vous joignez quand l’ingénieur demande « juste la liste des requêtes ».

Ce que l’expurgation ne peut pas faire

L’expurgation retire les clés ; elle ne retire pas la carte. Un HAR expurgé montre toujours vos hôtes et points de terminaison, vos noms de paramètres, la forme et la taille des réponses, la séquence et les temps des appels — un croquis fonctionnel de l’API de votre application, qui peut être en soi une information que vous ne publiez pas. Elle ne peut pas non plus rappeler les copies : une fois qu’un fichier brut est entré dans un système de tickets ou une boîte de réception, expurger votre copie ne change rien à la leur. Partagez le fichier expurgé par le canal privé que le fournisseur vous a donné — le ticket lui-même, pas un message public ni un lien de fichier public — et demandez, dans le ticket, la suppression du fichier à la clôture du dossier. Les organisations de support réputées le font couramment ; demander ne coûte rien.

Et si un HAR brut, non expurgé, s’est déjà échappé — envoyé à la mauvaise adresse, joint à un problème public, laissé dans un dossier partagé — traitez la session comme exposée, parce qu’elle l’est : déconnectez-vous du service (ce qui invalide généralement la session côté serveur), reconnectez-vous, et faites tourner toutes les clés d’API qui y figuraient. C’est la même règle que pour tout identifiant divulgué, et c’est la raison pour laquelle les petites lignes des autres outils de fichiers de ce site sont identiques — le Binary File Inspector lit les exécutables localement pour la même raison que cette page lit les captures localement : les fichiers qui ont le plus besoin d’inspection sont exactement ceux qu’il ne faut pas téléverser pour la faire.

Sources et lectures complémentaires

Questions fréquentes

Puis-je simplement expurger le fichier à la main dans un éditeur de texte ?

Vous pouvez — un fichier HAR est du JSON, et tout éditeur de texte peut en ouvrir un — mais l’expurgation à la main est exactement la façon dont les secrets survivent : le même jeton apparaît dans un en-tête, une liste de cookies, la chaîne de l’URL et les paramètres de requête, et rater une copie laisse l’identifiant vivant. Un passage automatique qui remplace les valeurs par règle, partout où elles apparaissent, est la façon ennuyeuse et correcte. Quoi que vous fassiez, cherchez dans le fichier terminé un fragment de chaque secret que vous saviez qu’il contenait avant de l’envoyer.

Un HAR expurgé sert-il encore à l’ingénieur support ?

Oui — c’est le sens d’expurger les valeurs plutôt que de supprimer les entrées. L’ingénieur conserve la séquence des requêtes, les méthodes, les formes d’URL, les noms d’en-têtes, les statuts, tailles et temps, qui est ce que le diagnostic utilise réellement ; ce qu’il perd, ce sont seulement les valeurs d’identifiants vivantes, dont il n’a jamais eu besoin. Si un ingénieur a vraiment besoin de voir une valeur, c’est une conversation à avoir explicitement — et elle se termine en général par son accord que le fichier expurgé suffit.

J’ai déjà envoyé un fichier HAR brut. Que dois-je faire maintenant ?

Traitez la session qu’il contient comme publique. Déconnectez-vous du service partout (la plupart des services ont un contrôle « fermer toutes les sessions », qui invalide les cookies capturés), reconnectez-vous, et faites tourner toutes les clés d’API ou jetons figurant dans la capture. Répondez ensuite dans le même ticket ou fil en demandant la suppression de la pièce jointe. N’envoyez pas un second fichier expurgé en considérant le problème réglé — l’expurgation protège les copies futures, pas celle déjà livrée.