CreepJS, explicado
CreepJS es el test de fingerprinting que más usan los investigadores y los desarrolladores de navegadores antidetect. No da un aprobado o reprobado: muestra lo que revela tu navegador, dónde se contradicen los valores y tres porcentajes de qué tan headless o stealth parece.
Un proyecto de investigación de código abierto de Abraham Juliot. Abrir CreepJS
¿Qué es CreepJS?
CreepJS es una página de investigación sobre fingerprinting, de código abierto, creada por Abraham Juliot y alojada en GitHub Pages. Recopila un conjunto muy amplio de señales, desde WebGL y audio hasta fuentes, workers y WebRTC, y calcula un hash de cada sección, así que puedes ver exactamente qué parte de una huella cambió entre dos visitas.
Lo que la distingue es que busca mentiras (lies): valores alterados por JavaScript, o que no coinciden entre la página y un Web Worker. Su sección “Headless” lo resume en tres cifras. Como es de código abierto, puedes leer exactamente cómo funciona cada comprobación.
Qué revisa CreepJS
Headless
Tres porcentajes: cuánto se parece el navegador a uno headless (“like headless”), cuántas señales claras de headless muestra (“headless”) y cuántas señales de parches stealth muestra (“stealth”).
Mentiras (Lies)
Funciones del navegador sobrescritas en JavaScript, que es como funcionan la mayoría de los plugins stealth y como CreepJS los detecta.
Workers
Valores leídos dentro de un Web Worker y comparados con los de la página: user agent, GPU, zona horaria, idioma, núcleos y memoria.
Renderizado
Mediciones de canvas, WebGL, audio, fuentes y DOM rects, cada una con su hash.
WebRTC, zona horaria y más
Candidatos de red, zona horaria y locale, pantalla y decenas de secciones más pequeñas.
Cómo interpretar tu resultado en CreepJS
- % like headless
- Señales débiles, comunes en navegadores headless pero que también aparecen en los normales. Aquí es normal un número distinto de cero.
- % headless
- Señales claras de un navegador headless o automatizado. Esta es la cifra que hay que vigilar.
- % stealth
- Señales de parches stealth, como funciones sobrescritas. Un plugin stealth en JavaScript aparece aquí.
- FP ID y fuzzy hash
- Identificadores de tu huella digital completa. Cambian cada vez que cambia cualquier cosa, así que sirven para comparar visitas, no para juzgar un navegador.
Qué resultado obtuvieron navegadores reales
Medido el 20 y el 21 de septiembre de 2026 en una PC con Windows 11 (NVIDIA RTX 3070), con una conexión de fibra doméstica en los Países Bajos, sin proxy ni VPN. Tres navegadores: el Chrome 153 de uso diario de una persona, con un bloqueador de anuncios y usado a mano; ese mismo Chrome 153 genuino controlado por Playwright; y Clearcote 153 controlado por Playwright con un seed de huella digital.
| Navegador | Lo que dijo CreepJS |
|---|---|
| Chrome 153 de uso diario, a mano | 19% like headless · 0% headless · 0% stealth |
| Chrome 153 genuino, Playwright | 25% like headless · 33% headless · 0% stealth |
| Clearcote 153, Playwright + seed | 25% like headless · 0% headless · 0% stealth |
La cifra “headless” es donde se notó la automatización: 33% para el Chrome genuino bajo Playwright, 0% para Clearcote y para el propio Chrome de la persona. El 0% de stealth de Clearcote es lo esperado, porque cambia los valores dentro del motor en lugar de sobrescribir funciones en JavaScript, así que la detección de mentiras no tiene nada que encontrar.
Resultados que aparecen en navegadores normales
- Un porcentaje de “like headless” distinto de cero. Incluso el propio Chrome de la persona mostró 19%.
- Un candidato host de WebRTC que termina en
.local, interpretado como una fuga. Es la protección mDNS de Chrome, que oculta tu dirección local en lugar de exponerla; por eso la auditoría de Clearcote lo cuenta como aprobado.
Preguntas frecuentes
¿Qué es un buen resultado en CreepJS?
0% headless y 0% stealth son las cifras que importan. Un porcentaje de “like headless” de entre el 10 y el 30%, más o menos, es normal; el Chrome de uso diario de una persona mostró 19% en nuestra prueba.
¿Por qué CreepJS muestra un ID de huella distinto cada vez?
El ID es un hash de todo lo que midió, así que cualquier cambio, desde una fuente nueva hasta otro tamaño de ventana, lo modifica. Está pensado para comparar dos visitas, no como puntuación.
¿CreepJS puede detectar puppeteer-extra-plugin-stealth?
Está diseñado para detectar funciones sobrescritas en JavaScript, que es justo como funciona ese plugin; eso aparece como mentiras (lies) y en el porcentaje de stealth. Consulta la comparación con el plugin stealth para ver por qué ese enfoque se delata solo.
¿CreepJS es lo mismo que la auditoría de Clearcote?
No. CreepJS es una página de investigación que muestra hallazgos en bruto; la auditoría de Clearcote ejecuta 294 comprobaciones de coherencia y explica cada resultado. Se solapan y discrepan en algunos puntos, como los candidatos WebRTC con mDNS.
¿Quieres cada comprobación explicada?
La auditoría de Clearcote ejecuta 294 comprobaciones de coherencia en cualquier navegador que la abra, con una explicación en lenguaje claro y una solución para cada una. Gratis y sin cuenta.
Lecturas relacionadas