Aller au contenu

Comment ça reste privé

Le fichier n’a nulle part où aller.

Dire qu’un fichier est « traité en local » ne coûte rien. Cette page montre le mécanisme, les vérifications que vous pouvez faire vous-même et l’endroit exact où la promesse s’arrête.

Autres serveurs contactés par cette page depuis son ouverture
0

Un PerformanceObserver toujours actif fait monter ce nombre si la page charge quoi que ce soit depuis une autre origine.

La règle que le navigateur applique
Content-Security-Policy: … connect-src 'none'

Cette directive figure dans l’en-tête HTTP Content-Security-Policy de chaque page. Elle demande au navigateur de refuser les connexions fetch, XHR, WebSocket et beacon de l’outil.

Ce qui se passe quand vous choisissez un fichier

  1. Le navigateur donne à cet onglet une référence temporaire au fichier choisi. Le choisir ne l’envoie pas.
  2. Les pixels des images sont décodés avec les fonctions du navigateur. Les objets PDF sont lus par une bibliothèque servie depuis ce même domaine.
  3. Le résultat est construit en mémoire et exposé par une adresse locale blob:, qui n’existe que dans cette session du navigateur.
  4. Télécharger écrit les nouveaux octets sur votre appareil. Recharger la page vide la mémoire de travail.

Trois façons de le vérifier vous-même

VérificationQue faireCe que vous devriez voir
Panneau RéseauOuvrez les outils de développement du navigateur, choisissez Réseau, puis traitez un fichier.Aucune requête contenant le fichier, son nom ou le résultat.
Test hors ligneOuvrez un outil une fois, coupez internet, puis utilisez-le.L’outil déjà visité fonctionne encore, depuis le cache du service worker.
En-tête de sécuritéExaminez la réponse du document dans les outils de développement.connect-src 'none', qui bloque les connexions fetch, XHR, WebSocket et beacon.

La limite, dite avec précision

Le site doit tout de même arriver jusqu’à votre navigateur : Cloudflare sert donc le HTML, les scripts, les styles et les polices, et peut conserver les journaux de sécurité habituels, comme l’adresse IP et l’heure. Le fichier choisi, son nom, ses pixels et le résultat ne voyagent pas avec ces requêtes.

Une exception mérite d’être nommée. Le cache hors ligne est tenu par un service worker, et un worker suit la politique servie avec son propre script : /sw.js est donc servi sans le connect-src du document et peut demander à ce domaine les pages et les fichiers qu’il garde pour l’usage hors ligne. Il ne touche jamais au fichier choisi, que la page lit sur votre disque et qui ne devient jamais une requête.

Aucun réseau publicitaire n’est actif sur cette version du site. Aucune page d’outil ne contacte automatiquement une autre entreprise.

Du code tiers, servi d’ici

Le moteur PDF utilise pdf-lib, et les deux convertisseurs de PDF en image dessinent les pages avec pdf.js, dont la licence Apache 2.0 est publiée avec le site. Le convertisseur HEIC utilise le décodeur heic-to, sous licence LGPL-3.0 : cette licence est aussi publiée avec le site. Ces scripts sont copiés dans le site et servis par NoUpload : ouvrir un outil ne demande jamais de code à un CDN de paquets ni à leurs auteurs.