Dans les outils de développement du navigateur, ouvrez l’onglet Réseau, videz-le, puis choisissez et traitez un fichier : la liste ne doit montrer aucune nouvelle requête qui emporte votre fichier, ni rien qui parte vers un autre site web. Les seules requêtes visibles viennent du chargement de la page, des composants que vous avez demandés (modèles et fichiers WebAssembly servis par ce site) et du script de mesure d’audience de Cloudflare.
Pourquoi vérifier
Chaque page de ce site affirme que chaque fichier est traité sur place, dans le navigateur, sans être envoyé. C’est une affirmation, et en matière de vie privée, les affirmations ne coûtent rien. Le code source du site n’est pas publié ; plutôt que de vous demander de le lire, cette page vous montre comment observer ce que fait réellement la page. Les navigateurs enregistrent chaque requête réseau qu’une page émet, et ils laissent n’importe qui consulter cet enregistrement.
La vérification dans Chrome ou Edge
- Ouvrez la page de l’outil que vous voulez tester, par exemple celle qui supprime les métadonnées d’une photo.
- Ouvrez les outils de développement avec Ctrl+Maj+I sous Windows et Linux ou Cmd+Option+I sur Mac (ou F12), puis cliquez sur l’onglet Réseau.
- Cochez Conserver le journal pour que la liste ne soit pas effacée si la page change, puis cliquez sur le bouton d’effacement (un cercle barré) pour vider la liste.
- Choisissez un fichier dans l’outil et laissez-le terminer. Appuyez sur les boutons dont l’outil a besoin, comme Lancer ou Exporter, et téléchargez le résultat.
- Examinez la liste. Dans le champ de filtre, tapez
method:POSTpour n’afficher que les requêtes qui envoient des données, puis-domain:startprivate.compour n’afficher que les requêtes vers d’autres sites. Aucun des deux filtres ne doit faire apparaître quoi que ce soit survenu pendant le traitement de votre fichier.
La vérification dans Firefox
- Ouvrez la page de l’outil.
- Appuyez sur Ctrl+Maj+E sous Windows et Linux ou Cmd+Option+E sur Mac pour ouvrir directement le Moniteur réseau.
- Dans le menu des paramètres du panneau (l’icône d’engrenage), activez Conserver les journaux, puis cliquez sur l’icône de corbeille pour vider la liste.
- Choisissez et traitez un fichier, puis téléchargez le résultat.
- Lisez la liste. Le champ de filtre accepte le même genre de filtres, par exemple
method:POST, et un clic sur une ligne montre où la requête est allée et ce qu’elle transportait.
La vérification dans Safari sur Mac
- Choisissez Safari → Réglages, ouvrez Avancés et cochez Afficher les fonctionnalités pour les développeurs web. Un menu Développement apparaît.
- Ouvrez la page de l’outil, puis choisissez Développement → Afficher l’inspecteur web (Option-Commande-I) et cliquez sur l’onglet Réseau.
- Videz la liste avec le bouton en forme de corbeille.
- Choisissez et traitez un fichier, puis téléchargez le résultat.
- Parcourez les nouvelles lignes, s’il y en a, et cliquez sur l’une d’elles pour voir son adresse et sa méthode.
Sur iPhone ou iPad, Safari n’a pas d’onglet Réseau à lui. Vous pouvez activer Inspecteur web dans les réglages de Safari de l’appareil, sous Avancé, relier l’appareil à un Mac avec un câble, puis inspecter son onglet depuis le menu Développement du Mac. Chrome sur Android s’inspecte de la même façon depuis Chrome sur ordinateur, à l’adresse chrome://inspect.
Ce que vous verrez, et ce que cela signifie
Au chargement de la page : la page elle-même, une feuille de style, quelques fichiers de script sous /assets/, parfois un petit fichier de langue, des icônes et le manifeste de l’application. Tout cela vient de startprivate.com. Vous verrez aussi le script de mesure d’audience servi par static.cloudflareinsights.com.
Quand vous appuyez sur un bouton qui a besoin d’un composant : une série de requêtes GET vers startprivate.com pour des fichiers de programme et des modèles, par exemple sous /v/ et /assets/. C’est le détecteur de visages (environ 1 Mo), le lecteur de texte, le lecteur d’identifiants de contenu (C2PA, « Content Credentials », environ 8,6 Mo), la bibliothèque Office ou les listes de mots des générateurs de mots de passe qui se téléchargent. Ce sont des fichiers qui arrivent chez vous, pas votre fichier qui s’en va. Cliquez sur l’une de ces lignes : vous verrez une requête GET dont le corps est vide.
Pendant que votre fichier est choisi et traité : rien de nouveau qui quitte votre appareil. Vous verrez peut-être des entrées dont l’adresse commence par blob: ou data:. Ce sont des adresses internes à votre propre navigateur, utilisées pour les aperçus et les téléchargements ; elles n’atteignent jamais le réseau.
La mesure d’audience : Cloudflare Web Analytics envoie un petit rapport au chargement de la page, puis de nouveau quand la page est masquée ou fermée ; passer à un autre onglet peut donc ajouter une ligne. Selon la façon dont le site est servi, ce rapport part vers /cdn-cgi/rum sur ce site ou vers cloudflareinsights.com. Cliquez dessus et ouvrez sa charge utile : elle contient des mesures de temps de chargement et l’adresse de la page, pas le contenu de vos fichiers. Si vous le bloquez avec un bloqueur de contenu, les outils fonctionnent exactement de la même manière.
Une exception voulue : sur la page qui évalue la solidité d’un mot de passe, cocher Vérifier les fuites de données connues envoie une requête GET à api.pwnedpasswords.com avec 5 caractères d’une empreinte. Cette option est désactivée par défaut, et aucune autre page n’a le droit de se connecter ailleurs qu’à ce site et à l’adresse de mesure d’audience.
Une seconde ligne de défense : la politique de sécurité
Chaque page est envoyée avec un en-tête Content-Security-Policy. Entre autres choses, il indique au navigateur que la page ne peut se connecter qu’à ce site et à l’adresse de mesure d’audience de Cloudflare, et ne peut charger de scripts que depuis ce site, plus le script de mesure d’audience. Si du code de la page essayait d’envoyer des données ailleurs, le navigateur lui-même le bloquerait et inscrirait une erreur dans la console. Vous pouvez lire cette politique dans l’onglet Réseau : cliquez sur la première ligne (la page), puis cherchez content-security-policy sous En-têtes de réponse. Sur la page d’évaluation des mots de passe, vous y trouverez une adresse supplémentaire, celle de la liste des fuites.
Les scripts et les styles de chaque page portent aussi des empreintes Subresource Integrity : le navigateur refuse d’exécuter un fichier qui ne correspond pas à la version que la page attend.
Comment fonctionne chaque type d’outil
Photos (JPEG, PNG, WebP, HEIC). Les métadonnées sont retirées au niveau de l’octet. L’outil parcourt les segments, blocs ou boîtes du fichier, écarte ceux qui contiennent l’EXIF, le GPS, le XMP, l’IPTC, les notes du fabricant, les identifiants de contenu, les commentaires et les vignettes intégrées, et recopie les données d’image sans les changer. L’image n’est jamais décodée ni réencodée : elle reste identique pixel pour pixel. L’indicateur d’orientation et le profil colorimétrique sont conservés pour que la photo s’affiche toujours correctement. Le profil reste tel qu’il est, courts textes compris (une description, une ligne de copyright, parfois le nom d’un appareil ou de la personne qui a créé le profil) : le résultat le nomme parmi ce qui reste, et la visionneuse EXIF affiche ces textes. En mode Localisation seulement, le bloc EXIF est modifié là où il se trouve, et seulement si l’outil peut le lire en entier : les entrées d’une liste fixe (dates, appareil, réglages, numéros de série, noms du propriétaire et de l’auteur) restent quand elles contiennent ce qu’une telle entrée doit contenir ; toute autre entrée est supprimée, de même qu’une entrée prévue par la liste mais enregistrée sous un type ou avec un nombre de valeurs différents de ceux qu’elle attend, ou qu’un nombre conservé qui épelle trois lettres d’un nom ; et un bloc impossible à lire jusqu’au bout est retiré en entier. Ce contrôle des nombres ne porte que sur des champs numériques, les nombres EXIF que ce mode conserve et les nombres d’un profil colorimétrique (conservé dans les deux modes) ; les appareils photo et les téléphones n’y écrivent pas de noms, seul un fichier fabriqué exprès le ferait. Il repère les lettres latines, grecques et cyrilliques écrites en octets simples, en UTF-8 ou en caractères sur 16 bits, y compris les accents écrits comme signes séparés ; une lettre accentuée stockée sur un seul octet, ainsi que les autres écritures, dont le chinois, ne peuvent pas être distinguées de nombres. Dans un profil colorimétrique, la taille du profil et le nombre de points d’une courbe ne sont pas lus comme des lettres quand ils concordent avec la structure du profil et restent dans ce qu’emploient les vrais profils (1 Mo, 64 balises, 4 096 points de courbe) ; un profil qui en sort est listé comme contenant des données qu’un profil standard ne porte pas. Les champs de texte comme l’auteur ou le copyright relèvent d’une autre règle, décrite plus bas sous « Appareil et noms en mode Localisation seulement ». Les données qu’un JPEG garde derrière son image principale, comme une carte de gain Ultra HDR ou la vidéo d’une photo animée, sont toujours retirées. Les fichiers que l’outil ne peut pas parcourir d’un bout à l’autre sont refusés d’emblée, de même que les types qu’il ne couvre pas : JPEG à codage arithmétique et JPEG hiérarchiques, séquences d’images HEIC, AVIF animés et HEIC comportant des boîtes inconnues.
Vidéo (MP4, MOV). Parmi les pistes, seules la vidéo et l’audio sont conservées. Les autres pistes (télémétrie GPS et capteurs, timecode, données propres à la caméra, et pistes de sous-titres sauf si vous choisissez de les garder) sont remplies de zéros et marquées comme espace libre, les boîtes de métadonnées comme udta, meta et uuid sont vidées, et les heures de création et de modification sont mises à zéro. Une boîte uuid reste : la boîte de vidéo sphérique de Google dans la piste d’une vidéo à 360°, qui contient la projection et le nom du logiciel d’assemblage, et dont les lecteurs ont besoin pour afficher la vidéo en 360° ; elle est listée comme restant dans le fichier. Parmi les réglages de codec des pistes conservées, un champ est vidé quand une piste d’image est codée en H.264, H.265 ou ProRes : l’endroit de sa description où un encodeur inscrit son propre nom (un fichier GoPro y porte « GoPro AVC encoder »), sauf si cet endroit ne contient que le nom du format de codage. Les autres codages gardent ce champ. Le reste n’est pas modifié et peut encore nommer l’encodeur ; le résultat cite chacun de ces noms avec son texte. La longueur du fichier ne change pas, l’image et le son ne sont pas réencodés, et la copie est assemblée à partir de tranches de votre original et de petits correctifs : des fichiers de plusieurs gigaoctets se traitent ainsi sans être chargés en mémoire.
Fichiers Office (DOCX, XLSX, PPTX). Ce sont des archives zip de fichiers XML, décompressées dans un processus d’arrière-plan et traitées en deux étapes distinctes. Le nettoyeur passe en premier. Il retire les propriétés d’auteur et de société, les commentaires et leurs auteurs, les propriétés personnalisées, le texte masqué, les identifiants de session d’édition, les traces de coédition, les balises de compléments, les réglages de publipostage et de publication web et les données d’étiquette de confidentialité, et il traite les modifications suivies en les acceptant ou en masquant leurs auteurs (à vous de choisir). Les chemins de dossiers sont réduits au nom du fichier partout où une valeur est à coup sûr l’emplacement d’un fichier : la cible d’un lien, une description d’image formée d’un chemin seul, le fichier qu’un champ Word doit aller chercher (pas le reste du texte d’un code de champ), et l’endroit d’une formule Excel qui nomme un autre classeur (pas le texte tapé entre guillemets). Un chemin trouvé ailleurs est laissé tel qu’il est écrit et listé dans le résultat. Un cas échappe aux deux : un emplacement qu’une formule assemble à partir de morceaux de texte séparés ne peut pas être reconnu comme chemin, et seul est listé un fragment qui, pris isolément, a l’air d’un chemin. Certains éléments sont gardés exprès : les signatures numériques, les champs du texte qui affichent l’auteur ou le nom du fichier, les connexions de données, les données de compléments, les adresses e-mail derrière les liens et les liens qui pointent vers des adresses d’un réseau privé. La seconde étape est un contrôle indépendant du fichier terminé. Il ne partage aucune liste avec le nettoyeur, et il compare le résultat, partie par partie et attribut par attribut, aux définitions publiées du format (les données de schéma livrées avec l’Open XML SDK de Microsoft). Une partie, un élément ou un attribut ne compte comme vérifié que si les définitions le connaissent et qu’il est trouvé propre. Tout le reste, y compris les éléments gardés exprès et toute partie ou tout balisage que l’outil ne reconnaît pas, est listé en haut du résultat avec le nom de la partie qui le contient, au lieu d’une déclaration selon laquelle le fichier serait propre. En dernier lieu, les noms, les initiales et les identifiants de compte lus dans le fichier d’origine sont recherchés dans chaque partie du fichier nettoyé, et ceux qui y réapparaissent sont listés eux aussi. Si un nom enregistré dans les propriétés du fichier (l’auteur, la personne qui a enregistré le fichier en dernier, celle qui a écrit un commentaire, etc.) figure aussi dans le texte même du document, il est listé parmi les avertissements, que ce texte soit affiché ou masqué ; à vous de vérifier et de décider si le nom reste. Quelques cas donnent lieu à une simple remarque au lieu d’un avertissement : du texte du contenu qui se lit comme un chemin de dossiers, une adresse interne ou un compte (voir les limites ci-dessous) ; et un nom enregistré qui n’a pas pu être recherché, soit parce qu’il ne compte qu’une ou deux lettres ou chiffres, soit parce que la partie du fichier d’origine qui le contenait n’a pas pu être lue. Une partie compte comme non lue quand un lecteur XML conforme la refuse, même si des noms y ont été trouvés ; de même pour une partie qui comporte une déclaration de type de document, ou dont l’encodage déclaré n’est ni UTF-8, ni UTF-16, ni windows-1252, ni ISO-8859-1, ni US-ASCII. Une poignée de mots par défaut comme « User » ne sont pas recherchés du tout ; la section Limites ci-dessous les nomme. Les parties sont décompressées une à une, dans des limites fixes (64 Mo pour une partie ou une image, 256 Mo pour l’ensemble des parties texte, 512 Mo pour tout le contenu du paquet, images et parties non ouvertes comprises, un million de morceaux de XML dans une partie, où comptent chaque élément, chaque commentaire et chaque bout de texte situé entre deux balises, 512 niveaux d’imbrication, 2 048 pour une partie parcourue d’une traite, 2 000 attributs sur un même élément et 10 000 entrées dans le paquet) : un fichier construit pour épuiser la mémoire est refusé, pas traité. Un tableau avant/après liste ce qui a changé. Les photos intégrées (JPEG, PNG, WebP, HEIC) passent par le nettoyeur de photos ; toute autre image intégrée, tout fichier multimédia et tout objet ne sont pas ouverts et sont signalés comme laissés dans le fichier.
Lecteur d’identifiants de contenu. La page vérifie d’abord, sur l’appareil, si un fichier contient des données C2PA. Ce n’est qu’ensuite qu’elle charge le lecteur, configuré pour ne récupérer ni manifestes distants, ni état de révocation, ni listes de confiance. C’est pourquoi il indique si une signature est intacte, et non si le signataire est digne de confiance.
Masquage. L’éditeur dessine une copie de travail sur un canevas, limitée à environ 2 048 pixels de côté, et garde les cadres dans les coordonnées de l’original. L’export repeint l’image en pleine taille avec les caches et encode un nouveau fichier dans un processus d’arrière-plan : c’est pour cela qu’aucune métadonnée ne suit. Si le navigateur ne parvient pas à encoder la pleine taille, il réessaie à 4 096 pixels. Le détecteur de visages est le modèle YuNet exécuté avec TensorFlow.js Web ; le détecteur de texte associe le moteur de reconnaissance de caractères Tesseract, des règles de motifs et le lecteur de codes-barres ZXing.
Mots de passe et phrases de passe. Tout l’aléa vient de crypto.getRandomValues, fourni par le navigateur, avec un échantillonnage par rejet qui donne à chaque caractère ou à chaque mot la même probabilité. Rien de ce qui est généré n’est conservé ni envoyé.
Empreintes de fichiers. Les fichiers sont lus par tranches de 8 Mio dans un processus d’arrière-plan et transmis aux implémentations SHA-2, SHA-1 et MD5 de hash-wasm.
Chiffrement de texte. AES-256-GCM, fourni par l’API Web Crypto du navigateur, avec des clés dérivées des mots de passe par l’Argon2id de hash-wasm (64 Mio, 3 passes).
Solidité des mots de passe. zxcvbn-ts note le mot de passe dans la page ; la vérification des fuites décrite plus haut est la seule partie capable d’émettre une requête.
Limites
Ces outils retirent ce qu’ils reconnaissent et listent ce qu’ils gardent. Un résultat qui ne liste rien signifie donc « rien de ce que vérifie cet outil n’a été trouvé », jamais « ce fichier ne dit rien de vous ». Voici ce que les outils ne font pas.
- Les chemins qu’une formule assemble. Une formule Excel peut composer une adresse ou un chemin de dossiers à partir de chaînes séparées, par exemple
="D:\Team\" & B2 & "\plan.xlsx". Voir que le résultat est un chemin demanderait de calculer la formule, et l’outil se contente de la lire. Un morceau isolé qui ressemble à un chemin, ici"D:\Team\", est tout de même listé. - Les noms qui sont des mots par défaut courants. Si le nom ou la société enregistrés dans les propriétés d’un fichier Office sont exactement « user », « admin », « administrator », « owner », « author », « guest », « unknown », « test » ou « microsoft », en majuscules ou non, la propriété est supprimée comme n’importe quelle autre, mais le reste du fichier n’est pas fouillé à la recherche de ce mot. Il apparaît dans les noms de polices, de thèmes et de styles des fichiers ordinaires, et presque chaque occurrence trouvée serait une fausse alerte. Un nom, une société ou un compte enregistrés qui ne comptent qu’une ou deux lettres latines ou chiffres (« HP », « Jo ») ne sont pas recherchés non plus, pas plus qu’une valeur sans lettre ni chiffre ou un identifiant fait uniquement de zéros ; dans ces cas, le résultat le signale pour le fichier concerné. Un nom dans une autre écriture, comme le chinois ou l’arabe, est recherché, quelle que soit sa longueur. Quant aux initiales que Word et PowerPoint stockent à côté de l’auteur d’un commentaire, elles sont la seule exception à ce signalement : quand elles comptent une ou deux lettres ou chiffres, elles ne sont pas recherchées et rien n’est dit, parce que le nom complet de l’auteur, qui est recherché, figure juste à côté. Des initiales de trois caractères ou plus sont recherchées comme un nom.
- Les noms écrits sous forme codée. Après le nettoyage, l’outil cherche dans le fichier chaque nom, chaque jeu d’initiales et chaque compte enregistrés dans l’original. Il compare chaque texte tel qu’il se présente, puis encore une fois après avoir défait une liste fixe de graphies, dix en tout : les références de caractère XML (
J) ; la forme_x004A_qu’utilise Excel ; les échappements en pourcentage (%4A) ; les différences de casse, de largeur et de caractères qui ne s’affichent pas ; un guillemet écrit deux fois dans une formule ; une apostrophe écrite deux fois dans un nom de feuille ou de classeur entre apostrophes ('O''Brien'!A1) ;&&pour une esperluette dans les en-têtes et pieds de page d’Excel ;+pour une espace après le?d’une adresse de lien ;\"et\\dans un code de champ Word ; et les échappements du texte JSON (\u004A), que les gestionnaires de références stockent dans les codes de champ. Chacune ne s’applique que dans le type d’endroit où le format l’emploie. Rien d’autre n’est décodé : un nom conservé en base64, sous la formexn--d’un nom de domaine internationalisé, ou écrit avec les barres obliques inverses qu’emploient les formats de nombre (\J\a\n\e), n’est trouvé que là où il figure aussi en clair. - Les chemins et adresses internes dans ce que dit le document lui-même. Le texte d’un document, les cellules d’un classeur et les mots d’une diapositive vous appartiennent, et l’outil ne les modifie pas. Il signale en revanche, sous le résultat, dans une remarque Bon à savoir, le texte qui s’y lit comme un chemin de dossiers avec une lettre de lecteur, un partage réseau, un dossier personnel (
~,/Users/…,/home/…) ou une variable comme%USERPROFILE%, comme une adresse à l’intérieur d’un réseau privé (http://intranet/…), ou comme un identifiant de compte. La remarque dit à quoi ressemble ce texte, pas qu’il en est un. Les autres textes en forme de chemin n’ont pas de remarque : la partie chemin d’une adresse web (/v1.0/teams), un XPath, une ligne d’exemple de code qui commence par//,localhost, un hôte fictif écrit entre accolades. Les mêmes valeurs placées là où un lecteur ne les voit pas (propriétés, noms définis, cibles de liens, codes de champ) sont listées comme avant, dans l’encadré de ce qui reste dans le fichier. - Les liens web, jugés à leur façon d’être écrits. Chaque lien vers une page web publique est listé, parce que l’adresse qui se cache derrière un lien ne s’affiche pas sur la page. Un lien posé sur du texte, une cellule ou une image de l’une des façons ordinaires dont Word, Excel et PowerPoint écrivent les liens est listé comme simple remarque sous Bon à savoir. Un lien écrit de toute autre façon (dans un en-tête ou un commentaire, sur une action au survol, sur une cellule recouverte par une fusion ou d’apparence vide, dans une équation, sous une disposition de diapositive que la diapositive n’affiche pas) est listé comme lien encore présent dans le fichier, qu’il soit visible ou non, car l’outil ne cherche pas à déterminer où un tel lien s’affiche. Par lien, on entend ici un lien que le programme suit quand on clique dessus : un lien hypertexte stocké derrière du texte, une cellule, une forme ou une image, un champ HYPERLINK dans Word, et une formule HYPERLINK dans Excel dont l’adresse est écrite en entier. Une adresse web qui est seulement écrite, dans le texte, dans le texte de remplacement d’une image ou dans l’info-bulle d’un lien, est traitée comme du texte, selon les règles ci-dessus pour le contenu et pour le texte que le fichier enregistre.
- Le texte affiché mais difficile à voir. Les fichiers Office peuvent cacher du contenu avec leurs propres réglages : l’attribut de police Masqué, un objet réglé comme masqué, une ligne, une colonne, une feuille ou une diapositive masquée, une partie d’équation réglée pour ne pas s’afficher. Les outils lisent ces réglages. Ils ne jugent pas l’effet de la mise en forme sur un texte affiché : du texte blanc sur une page blanche, une police d’un point, une forme posée sur un paragraphe, un objet glissé hors de la diapositive ou de la page. Un tel texte est traité comme du contenu ordinaire : cherchez-le vous-même ; les pages Office disent où regarder.
- Les noms et textes de remplacement des objets affichés. Une image, une forme ou un contrôle qui s’affiche garde son nom et son texte de remplacement comme partie du fichier, et ceux-ci ne sont pas signalés comme contenu masqué ; seul un objet masqué ou non dessiné voit les siens listés. Un nom ou un texte de remplacement qui n’est rien d’autre qu’un chemin de dossiers est raccourci comme les autres chemins. Un chemin, une adresse interne ou un compte à l’intérieur d’un texte plus long est signalé, tout comme un nom enregistré dans les propriétés du fichier.
- Les mélanges de modifications suivies acceptées et rejetées. Quand un document Word garde ses modifications suivies, la personne qui l’ouvre peut accepter ou rejeter chaque modification pour elle-même. Les mélanges qui résultent de ces décisions prises une par une ne font pas l’objet d’un contrôle individuel ; ce que chacun a tapé, sous la forme où il l’a tapé, est contrôlé.
- Ce que montre l’image. L’outil recopie sans les examiner les données compressées de l’image et sa palette de couleurs. Un visage, une plaque d’immatriculation, une façade de maison, des mots photographiés ou dessinés dans l’image : tout cela reste. Recouvrir ces éléments est le rôle de l’outil de masquage (en anglais).
- La partie rognée d’une image dans un fichier Office. Rogner une image dans Word, Excel ou PowerPoint cache seulement ses bords ; l’image complète reste dans le fichier, et quiconque le reçoit peut défaire le rognage. Le nettoyage traite les métadonnées de l’image mais ne touche pas à ses pixels : la partie coupée est toujours là après le nettoyage. Pour la retirer, sélectionnez l’image dans Office, ouvrez l’onglet Format de l’image, choisissez Compresser les images, puis cochez la case Supprimer les zones de rognage des images ; autre solution : enregistrer l’image rognée comme nouveau fichier image et l’insérer à la place.
- Ce qu’encode une valeur binaire dans un fichier Office. Les formats stockent quelques valeurs sous forme de données binaires encodées : l’empreinte et le sel d’un mot de passe qui protège une feuille ou un document, les traits de l’encre. Là où une telle valeur est formée de données binaires correctes, de la longueur que son type exige, l’outil n’essaie pas d’en tirer un sens. Une valeur qui, à un tel endroit, n’est pas bien formée est vérifiée comme n’importe quel autre texte et signalée ; l’encre est toujours listée partie par partie.
- Appareil et noms en mode Localisation seulement. Ce mode est défini pour retirer le lieu et laisser les autres informations sur la prise de vue. Le fabricant et le modèle de l’appareil photo, le logiciel et les champs de l’objectif restent, tout comme les champs du propriétaire, de l’artiste et du copyright. Quand l’un de ces champs de nom contient quelque chose, le résultat l’affiche parmi ce qui reste. Les numéros de série du boîtier et de l’objectif restent aussi dans ce mode, et un numéro renseigné est lui aussi affiché parmi ce qui reste, puisqu’il est identique dans toutes les photos prises avec cet appareil.
- Les profils colorimétriques. Un profil est conservé, parce que le retirer change les couleurs, et le résultat le liste. Le texte d’un profil qui va au-delà de ce que porte un profil standard (une description, une ligne de copyright, un nom d’appareil) est listé comme élément à part et affiché par la visionneuse EXIF ; l’outil ne le réécrit pas.
- Les chemins de dossiers aux graphies rares au sein d’un texte plus long. Sont reconnus : une valeur qui est un chemin de son premier à son dernier caractère, ou un argument entier, entre guillemets, d’un code de champ. Autrement dit une racine (une lettre de lecteur suivie ou non d’une barre oblique, un partage réseau,
/,~, une adressefile:en minuscules, une variable d’environnement, l’ancienMacintosh HD:du Mac) suivie de deux noms ou plus ; aucune extension de fichier n’est nécessaire. Après une lettre de lecteur, un partage, un dossier personnel ou une variable d’environnement, les deux séparateurs peuvent être mélangés (C:\Users\Alice/Documents/a.docx, comme en produisent des programmes écrits pour plusieurs systèmes) ; après un/seul, les noms doivent être séparés par le même séparateur. Deux racines sont soumises à des conditions supplémentaires, même quand le chemin constitue toute la valeur. Un ancien chemin Mac sur un disque qui porte son propre nom ne compte que s’il aboutit à un nom de fichier doté d’une extension :Work Disk:Profiles:Alice:secret.docxest reconnu,Work Disk:Profiles:Alice:plannon, parce que des étiquettes séparées par des deux-points, commeIT:Applications:Support, s’écrivent de la même façon. EtFile:avec une majuscule ne compte que si une barre oblique ou une lettre de lecteur suit les deux-points :File:Usersn’est pas reconnu, parce que les titres de pages de wiki commeFile:Flag_of_Japan.svgont cette allure. À l’intérieur d’un texte plus long, les graphies courantes sont reconnues : une lettre de lecteur suivie d’une barre oblique (C:\ouC:/), un partage réseau (\\server\share), une adressefile:,/Users,/homeet les autres dossiers système habituels,~/, les chemins à variable d’environnement comme%USERPROFILE%\Documents, et l’ancienne forme MacMacintosh HD:Users:…. Ce qui peut ne pas être reconnu, c’est un chemin écrit de façon plus rare au milieu d’un texte plus long. Premier exemple : la forme relative au lecteur dans « voir C:x\Alice\notes ». Autre exemple : une racine suivie de rien au milieu d’une phrase, comme « voir ~jane/ maintenant » ou « voir \\fs01\ maintenant » ; le compte ou la machine que nomme la racine ne sont alors pas relevés. Une telle racine nue n’est reconnue que là où elle constitue à elle seule l’argument entier, entre guillemets, d’un code de champ. Chaque chemin reconnu est soit raccourci, soit listé. - Les noms d’encodeur dans une vidéo. Quand une piste est codée en H.264, H.265 ou ProRes, le champ du nom d’encodeur dans sa description est vidé (il indique « GoPro AVC encoder » dans les clips GoPro et « Lavc61.19.101 libx264 » dans les fichiers exportés avec FFmpeg), sauf si sa valeur entière est un format de codage et rien d’autre (« H.264 », « AVC Coding », « HEVC », « HEVC Coding »), auquel cas elle reste et n’est pas listée. Les autres codages gardent ce champ, et il est listé : certains décodeurs le lisent (FFmpeg s’en sert pour choisir la disposition des pixels d’une vidéo non compressée). Les autres endroits où un encodeur ou le logiciel d’une caméra écrit son nom restent dans une vidéo nettoyée, quel que soit le mode : les codes fabricant de quatre lettres des descriptions de pistes et des gestionnaires, le texte d’autres réglages de codec, et la signature qu’écrivent certains encodeurs dès les premiers octets des données d’image ou de son, toutes parties qu’un décodeur lit. Rien n’a encore montré qu’on puisse les réécrire sans risque pour la lecture : ils sont donc laissés tels quels. Le résultat liste les noms trouvés dans le fichier tels qu’ils sont écrits : les cinq premiers sont affichés et les suivants comptés, 32 au plus sont relevés par fichier, et un nom long est coupé à 100 caractères. Un tel nom dit en général quel programme ou quel modèle de caméra a produit l’enregistrement. L’outil ne juge pas pour autant ce que dit le texte, et la signature d’un encodeur peut contenir plus qu’un nom, par exemple un chemin de dossiers de l’ordinateur qui a encodé la vidéo.
- Les aperçus intégrés à un HEIC. L’image d’aperçu qu’un HEIC stocke comme élément à part est conservée, et le résultat la liste. Un aperçu stocké comme élément JPEG doté de ses propres métadonnées est nettoyé. Si la photo a été recadrée ou modifiée sur le téléphone, cet aperçu peut dater d’avant et montrer l’image dans son état antérieur.
- Un seul texte très long. Dans un même élément, le contrôle garde au plus 4 194 304 caractères de texte, soit environ 4 millions. Une partie qui en contient un plus long est quand même nettoyée, mais elle est listée comme non vérifiée, jamais comme propre. Dans les vrais fichiers sur lesquels l’outil est testé, le plus long texte d’un seul élément compte 39 540 caractères.
- Les comptages dans des dispositions inhabituelles. Dans certaines dispositions inhabituelles, un nom ou un autre élément peut être compté plus ou moins de fois qu’il n’apparaît, ou listé comme correspondance possible là où il ne figure pas vraiment ; rien n’est omis pour autant.
- Les fichiers construits exprès pour passer à travers les contrôles. Un fichier fabriqué pour faire passer des données à travers ces outils peut contenir quelques formes qu’ils ne reconnaissent pas ou ne retirent pas : des graphies, des remplissages ou des codages qu’aucun programme Office n’écrit ; des parties qui se contredisent ou qui enfreignent les règles du format ; des valeurs cachées dans les nombres des réglages Photoshop d’une photo, qui ne sont pas affichés un par un ; des champs de métadonnées surdimensionnés, qui peuvent ralentir la visionneuse.
Comment le site est testé
Avant d’être publiée, chaque version passe par :
- des tests unitaires du code d’analyse et de nettoyage, avec de vrais fichiers d’appareils et de petits échantillons synthétiques, et un test pour chaque piège connu : orientation JPEG, indicateurs d’en-tête WebP, emplacements des éléments HEIC, positions vidéo sur 64 bits, MP4 fragmenté, pistes de données GoPro multiples, les deux formats de sous-titres DJI, modifications suivies et commentaires Office, et solution de repli pour les grandes images. Pour les fichiers Office, des documents construits à la main couvrent chaque construction que listent les pages Office ; un cas n’est réussi que si la valeur identifiante a disparu du fichier produit ou si le résultat nomme un élément correspondant. Un autre test échoue si le contrôle indépendant importe un jour le code du nettoyeur.
- des tests dans le navigateur sous Chromium, Firefox et WebKit, en taille ordinateur et en taille téléphone. Chaque outil reçoit des fichiers d’exemple, et le test échoue si une requête autre qu’un GET, ou une requête vers un autre site, a lieu entre le choix du fichier et le résultat, ou si la console signale une erreur ou une violation de la politique de sécurité.
- des contrôles indépendants du fichier produit avec ExifTool, ffprobe et LibreOffice : les champs qu’un outil déclare retirés ont disparu, les fichiers s’ouvrent normalement, les photos nettoyées se décodent en exactement les mêmes pixels que les originales, et les vidéos nettoyées ont des paquets audio et vidéo identiques. Les fichiers Office nettoyés doivent aussi passer le validateur de l’Open XML SDK de Microsoft sans aucune erreur que l’original n’avait pas déjà.
- les gros fichiers : des photos de 48 mégapixels, une vidéo de 2 Go et un lot de 50 fichiers, en émulation de téléphone.
Ce que votre navigateur révèle de lui-même
Cette page parle de fichiers. Votre navigateur dit aussi certaines choses sur vous à chaque site web, du seul fait de s’y connecter : votre adresse IP, votre localisation approximative, votre langue ou la taille de votre écran, par exemple. Pour voir ce que votre navigateur révèle aux sites web, vous pouvez faire une vérification séparée.
Sources (en anglais)
Vérifié le 11 octobre 2026.
- Chrome DevTools : l’onglet Réseau (en anglais) : enregistrement, Conserver le journal et filtres.
- Le Moniteur réseau de Firefox (en anglais) : l’ouvrir avec Ctrl+Maj+E ou Cmd+Opt+E.
- Apple : activer les fonctionnalités pour les développeurs web (en anglais) : le réglage Afficher les fonctionnalités pour les développeurs web.
- Cloudflare Web Analytics : origine et collecte des données (en anglais) : d’où se charge le script et où il envoie ses rapports.
- Open XML SDK sur GitHub (en anglais) : les données de schéma publiées auxquelles le contrôle Office compare les fichiers.
Dernière mise à jour :