CreepJS, expliqué
CreepJS est le test de fingerprinting le plus utilisé par les chercheurs et les développeurs de navigateurs anti-détection. Il ne rend pas de verdict réussi/échoué ; il montre ce que votre navigateur révèle, où les valeurs se contredisent, et trois pourcentages qui indiquent à quel point il paraît headless ou furtif.
Un projet de recherche open source d'Abraham Juliot. Ouvrir CreepJS
Qu'est-ce que CreepJS ?
CreepJS est une page de recherche open source sur le fingerprinting, créée par Abraham Juliot et hébergée sur GitHub Pages. Elle collecte un très large éventail de signaux, du WebGL et de l'audio aux polices, aux workers et à WebRTC, et hache chaque section : vous voyez ainsi exactement quelle partie d'une empreinte a changé entre deux visites.
Ce qui la distingue, c'est qu'elle cherche les mensonges (lies) : des valeurs modifiées par JavaScript, ou qui ne concordent pas entre la page et un Web Worker. Sa section « Headless » résume tout cela en trois chiffres. Comme elle est open source, vous pouvez lire exactement comment fonctionne chaque vérification.
Ce que vérifie CreepJS
Headless
Trois pourcentages : à quel point le navigateur ressemble à un navigateur headless (« like headless »), combien de signes francs de mode headless il présente (« headless ») et combien de signes de patchs stealth il présente (« stealth »).
Mensonges (Lies)
Les fonctions du navigateur redéfinies en JavaScript : c'est ainsi que fonctionnent la plupart des plugins stealth, et c'est ainsi que CreepJS les repère.
Workers
Des valeurs lues dans un Web Worker et comparées à celles de la page : user agent, GPU, fuseau horaire, langue, cœurs et mémoire.
Rendu
Mesures canvas, WebGL, audio, polices et DOM rects, chacune hachée.
WebRTC, fuseau horaire et plus
Candidats réseau, fuseau horaire et paramètres régionaux, écran, et des dizaines de sections plus petites.
Comment lire votre résultat CreepJS
- % like headless
- Des signaux faibles, fréquents chez les navigateurs headless mais présents aussi chez les navigateurs normaux. Un chiffre non nul ici est normal.
- % headless
- Des signes francs d'un navigateur headless ou automatisé. C'est le chiffre à surveiller.
- % stealth
- Des signes de patchs stealth, comme des fonctions redéfinies. Un plugin stealth en JavaScript apparaît ici.
- FP ID et fuzzy hash
- Des identifiants de votre empreinte complète. Ils changent dès que quoi que ce soit change : ils servent à comparer des visites, pas à juger un navigateur.
Les scores de vrais navigateurs
Mesures effectuées les 20 et 21 septembre 2026 sur un seul PC Windows 11 (NVIDIA RTX 3070), sur une connexion fibre domestique aux Pays-Bas, sans proxy ni VPN. Trois navigateurs : le Chrome 153 qu'une personne utilise au quotidien, avec un bloqueur de publicités, piloté à la main ; ce même Chrome 153 authentique piloté par Playwright ; et Clearcote 153 piloté par Playwright avec un seed d'empreinte.
| Navigateur | Verdict de CreepJS |
|---|---|
| Chrome 153 du quotidien, à la main | 19 % like headless · 0 % headless · 0 % stealth |
| Chrome 153 authentique, Playwright | 25 % like headless · 33 % headless · 0 % stealth |
| Clearcote 153, Playwright + seed | 25 % like headless · 0 % headless · 0 % stealth |
C'est le chiffre « headless » qui a révélé l'automatisation : 33 % pour le Chrome authentique sous Playwright, 0 % pour Clearcote et pour le Chrome de la personne. Les 0 % de stealth de Clearcote sont attendus : il modifie les valeurs dans le moteur au lieu de redéfinir des fonctions en JavaScript, la détection des lies n'a donc rien à trouver.
Résultats qui apparaissent aussi sur des navigateurs normaux
- Un pourcentage « like headless » non nul. Même le Chrome de la personne affichait 19 %.
- Un candidat hôte WebRTC qui se termine par
.local, lu comme une fuite. C'est la protection mDNS de Chrome, qui masque votre adresse locale au lieu de l'exposer ; l'audit Clearcote le compte donc comme un succès.
FAQ
Qu'est-ce qu'un bon résultat sur CreepJS ?
0 % headless et 0 % stealth : ce sont les chiffres qui comptent. Un pourcentage « like headless » compris entre 10 et 30 % environ est normal ; le Chrome du quotidien d'une personne affichait 19 % lors de notre test.
Pourquoi CreepJS affiche-t-il un ID d'empreinte différent à chaque fois ?
L'ID est un hash de tout ce qui a été mesuré : le moindre changement, d'une nouvelle police à une autre taille de fenêtre, le modifie. Il sert à comparer deux visites, ce n'est pas un score.
CreepJS peut-il détecter puppeteer-extra-plugin-stealth ?
CreepJS est conçu pour repérer les fonctions redéfinies en JavaScript, ce qui est précisément la méthode de ce plugin ; cela apparaît dans les lies et dans le pourcentage stealth. Voir le comparatif avec le plugin stealth pour comprendre pourquoi cette approche se trahit.
CreepJS, c'est la même chose que l'audit Clearcote ?
Non. CreepJS est une page de recherche qui affiche des constats bruts ; l'audit Clearcote exécute 294 vérifications de cohérence et explique chaque résultat. Ils se recoupent, et divergent sur quelques points, comme les candidats WebRTC mDNS.
Envie d'une explication pour chaque vérification ?
L'audit Clearcote exécute 294 vérifications de cohérence sur n'importe quel navigateur qui l'ouvre, avec une explication en langage clair et un correctif pour chacune. Gratuit, sans compte.
À lire aussi