Por qué el modo incógnito no protege contra el fingerprinting
El modo incógnito borra las cookies pero deja intacta la huella del navegador. Descubre por qué la navegación privada no basta y cómo comparar sesiones privadas y normales.
BotBrowser Team
Prefieres la documentación del producto mantenida?
Este artículo tiene una página equivalente en el centro de documentación. Usa los docs para el flujo canónico, las flags actuales y la referencia duradera.
La navegación privada, que Chrome llama Incógnito y Edge llama InPrivate, suele describirse como una forma de navegar sin que te rastreen. La función es más limitada. Una ventana privada evita que el navegador guarde en local el historial, las cookies, los datos de sitios y las entradas de formularios cuando termina la sesión. No cambia la dirección IP que ve un sitio y tampoco cambia las señales que el navegador expone sobre su hardware y su software mientras una página está abierta. La propia página de ayuda de Chrome indica que Incógnito no te hace invisible y que los sitios web que visitas y las organizaciones que administran tu red pueden seguir observando tu actividad.
Las secciones siguientes separan los efectos locales del modo privado de los efectos que ocurren en el lado del sitio. Tratan las diferencias de almacenamiento y de API que puede añadir el modo privado, el motivo por el que las señales centrales de la huella siguen iguales, una comparación práctica entre una sesión normal y una privada con el mismo perfil, y opciones de aislamiento que funcionan sin modo privado. También indican qué cubre BotBrowser y qué deja en tus manos.
Mira el vídeo
Este vídeo en inglés compara una ventana normal y una ventana privada (Incógnito) en Chrome, en máquinas Ubuntu y Windows, con una página de laboratorio local. Lo que cambia entre los dos contextos es la capa de almacenamiento, mientras que los valores de hardware, plataforma, idioma y compilación que lee la página siguen igual. Una segunda página de laboratorio muestra una cookie fijada en la primera visita ausente en la segunda visita en un contexto privado nuevo, mientras la firma del laboratorio se repite. Muestra lo que devolvieron estas máquinas, no un veredicto para todos los navegadores o sitios. El audio está en inglés.
TL;DR
- El modo privado elimina el estado local al cerrarse, pero no cambia la IP ni las señales de la huella del dispositivo.
- Compara
navigator.storage.estimate(), las API de página y los valores de huella con el mismo--bot-profileantes de atribuir una diferencia al modo. - Usa un
--user-data-dirseparado para aislar datos; la identidad de red y el estado de la cuenta requieren decisiones distintas.
Contenido
- Qué cambia una ventana privada y qué deja intacto
- Diferencias de almacenamiento y de API que un sitio podría observar
- Por qué las señales de la huella siguen iguales en modo privado
- Compara una sesión normal y una privada paso a paso
- Elige un aislamiento que no dependa del modo privado
- Qué cubre BotBrowser y qué queda fuera
- Conclusión práctica
Qué cambia una ventana privada y qué deja intacto
| Superficie | Resultado de la sesión privada |
|---|---|
| Historial local y cookies | Se eliminan al cerrar la última ventana privada |
| Dirección de red | Se mantienen la misma IP y la misma ruta |
| Cuenta | El servicio sigue reconociendo una cuenta con sesión iniciada |
| Señales del dispositivo | Siguen disponibles los valores del hardware y del navegador |
Una ventana privada empieza con una sesión vacía y temporal. No carga las cookies, el almacenamiento local ni las sesiones iniciadas del perfil normal, y cuando se cierra la última ventana privada el navegador descarta lo que creó la sesión. Esto resulta útil en un equipo compartido, para comprobar cómo se comporta una página pública sin una sesión previa en el sitio, o para terminar una tarea puntual que no debe entrar en el historial habitual. Las descargas y los marcadores no forman parte de esa limpieza, y tampoco lo que un servicio ya haya registrado en sus propios servidores.
La página de ayuda de Chrome añade detalles sobre lo que cambia dentro de una ventana privada. Chrome no conserva los datos de sitios ni un registro de las páginas que visitaste cuando termina la sesión, las cookies de terceros se bloquean de forma predeterminada y no se inicia sesión automáticamente en tus cuentas. Los marcadores que guardas y los archivos que descargas permanecen en el dispositivo. Todos estos son efectos locales. Describen lo que el navegador conserva en tu equipo, no lo que un sitio web o una red pueden observar mientras estás conectado.
Los límites importan tanto como el beneficio. La dirección IP que llega a un sitio la decide la red y no el modo del navegador, así que una ventana privada usa la misma conexión que cualquier otra ventana de ese equipo. Los empleadores, los centros educativos y los proveedores de internet que administran una red siguen pudiendo ver el tráfico que la atraviesa. Un sitio en el que inicias sesión sigue sabiendo quién eres. Y el navegador sigue informando a cada página que carga de su agente de usuario habitual, el tamaño de pantalla, las fuentes, el comportamiento gráfico y el comportamiento de audio, porque esos valores describen el dispositivo y la versión del navegador, no la sesión.
- El historial local, las cookies, los datos de sitios y las entradas de formularios se eliminan cuando termina la sesión privada.
- La dirección IP, la ruta de red y lo que pueden observar quienes administran esa red siguen igual.
- Una cuenta autenticada sigue asociada al servicio hasta que se cierra la sesión.
- Las señales de la huella describen el dispositivo y la versión del navegador, así que siguen igual.
A veces se lee «privado» como «no vinculable». Son propiedades distintas. No vinculable significaría que un sitio no puede conectar dos visitas. Una ventana privada solo significa que la segunda visita no lleva las cookies de la primera. Si el mismo dispositivo muestra la misma huella en ambas visitas, un sitio que recoja esas señales puede conectarlas igualmente sin ninguna cookie. El artículo sobre la navegación privada en el uso diario describe el lado cotidiano de este límite, y el artículo sobre qué es el fingerprinting del navegador explica las propias señales.
Diferencias de almacenamiento y de API que un sitio podría observar
| Comprobación | Valor concreto que se compara |
|---|---|
| Cuota | Cuota y uso de navigator.storage.estimate() |
| Almacenamiento persistente | Si la solicitud se concede o se rechaza |
| IndexedDB | Escritura y lectura controladas en ambos contextos |
| Service worker | Resultado del registro y duración tras cerrar |
Como una sesión privada guarda sus datos en un almacenamiento temporal, los navegadores a veces se comportan de forma algo distinta dentro de ella. La guía de MDN sobre las cuotas de almacenamiento y los criterios de expulsión señala que, en el modo de navegación privada, que Chrome llama Incógnito y Edge llama InPrivate, los navegadores pueden aplicar cuotas diferentes y que los datos almacenados suelen eliminarse cuando termina el modo. Una página puede leer la cuota y el uso actual de su origen mediante navigator.storage.estimate(). La misma página de MDN advierte de que este método devuelve una estimación y no una cifra exacta, y de que los navegadores pueden rellenar el tamaño de los datos de otros orígenes al informar del uso total.
La cuota es la diferencia más comentada, pero no la única. Con los años, los navegadores han cambiado la forma en que responden algunas interfaces relacionadas con el almacenamiento en modo privado. Algunos ejemplos son las interfaces antiguas del sistema de archivos, la forma de responder a las solicitudes de almacenamiento persistente, cómo se registran los service workers y si sobreviven, y cómo se comporta IndexedDB cuando no puede escribir en disco. Estos detalles varían según el navegador y la versión, y un comportamiento que existía en una versión puede haber desaparecido en la siguiente. Trata cualquier diferencia de este tipo como algo que puede existir, no como una regla válida en todas partes.
Además, cada navegador toma sus propias decisiones sobre la cuota incluso fuera del modo privado. MDN enumera límites distintos para Firefox, Chrome y Safari, expresados como proporciones diferentes del espacio total en disco, y señala que las cifras dependen de cómo se use el almacenamiento. Esa dispersión es parte del motivo por el que un único valor de cuota es una señal débil. Un valor pequeño puede proceder de una sesión privada, de un disco casi lleno, de una vista web incrustada o de un navegador que simplemente fija un límite más bajo.
¿Por qué importa esto para la privacidad? Una diferencia visible para una página es una señal. Si un script lee una cuota menor que la que el mismo navegador suele informar, puede suponer que la sesión es privada. Esa suposición no es un identificador fuerte ni una prueba fiable, porque la cuota depende del espacio libre en disco, de la versión del navegador y de cómo esté configurado el perfil, de modo que las sesiones normales también muestran un amplio rango de valores. Aun así, una función que la gente usa para parecer menos distinguible no debería añadir una diferencia visible propia.
Dos precauciones mantienen esto en su justa medida. Primero, una diferencia del modo privado no identifica a una persona. Como mucho coloca la sesión en el grupo de las sesiones privadas, que es más reducido que el de todas las sesiones. Segundo, los sitios tienen muchos motivos legítimos para leer cifras de almacenamiento, como decidir cuántos datos conservar para el uso sin conexión, de modo que leerlas es un comportamiento normal y no una prueba de rastreo. El artículo sobre el fingerprinting de la cuota de almacenamiento profundiza en cómo se usan esas cifras y en lo estables que son.
Por qué las señales de la huella siguen iguales en modo privado
| Familia de señales | Fuente externa al perfil privado |
|---|---|
| Gráficos | Renderizador y dibujo de la pila del navegador y del sistema |
| Audio | Resultado de la prueba de audio de la versión del navegador |
| Fuentes | Inventario instalado y comportamiento de sustitución |
| Pantalla | Dimensiones y proporción de píxeles del dispositivo |
Una huella del navegador es una combinación de valores que describen el dispositivo y la versión del navegador. Incluye cómo dibuja formas y texto la pila gráfica, cómo procesa una señal de prueba la pila de audio, qué fuentes están instaladas, las dimensiones de pantalla y la proporción de píxeles, el número de procesadores lógicos, la cadena de plataforma y la lista de idiomas. Ninguno de estos valores reside en la carpeta del perfil que el modo privado sustituye. Proceden del hardware, del sistema operativo y de la versión del navegador, y son los mismos tanto si la ventana es privada como si no.
Por eso se puede vincular una visita normal con una visita privada desde el mismo equipo. Imagina que alguien navega por una tienda en una ventana normal, abre después una ventana privada y vuelve a la misma tienda para evitar las recomendaciones que activarían las cookies. Las cookies han desaparecido. La huella no. Un sitio que registra valores de la huella para prevenir fraudes o con fines analíticos ve dos visitas con valores coincidentes y puede tratarlas razonablemente como un solo dispositivo.
Una huella resulta útil para un sitio precisamente porque es estable. Un valor que cambiara en cada carga de página no serviría para reconocer a nadie, de modo que las señales que prefiere un sitio son las que se mantienen entre sesiones, reinicios y cambios de modo. Esa estabilidad es justo lo que hace ineficaz el modo privado frente a ellas. Borrar las cookies restablece el estado que el sitio guardó en el navegador. No restablece nada de lo que el navegador informa sobre sí mismo.
Las extensiones que dicen restaurar la privacidad dentro de las ventanas privadas tienen un límite parecido. Una herramienta que altera algunos valores en los scripts de la página tiene que mantener coherentes con ellos todas las demás respuestas, y los cambios pueden ser una rareza visible por sí mismos. Una huella que se contradice a sí misma suele ser más distintiva que una corriente. Es un motivo para pensar en el entorno del navegador como un conjunto y no como una lista de valores independientes.
La conclusión para el modo privado es sencilla. Cubre una clase de reconocimiento, la que depende del estado almacenado, como las cookies. No cubre el reconocimiento que depende de lo que informan el dispositivo y el navegador. Cuando una tarea necesita control sobre la segunda clase, una ventana privada es la herramienta equivocada, y un perfil elegido con criterio y coherente en sí mismo es la adecuada.
Compara una sesión normal y una privada paso a paso
| Variable que debe mantenerse | Registro previo a la comparación |
|---|---|
| Navegador y perfil | Versión, archivo --bot-profile y opciones de arranque |
| Almacenamiento | Cuota, uso y resultado del almacenamiento persistente |
| API de página | Service worker, IndexedDB, almacenamiento local y Cache API |
| Reinicio | Los mismos valores después de cerrar todas las ventanas |
Cuando se quiere saber si dos sesiones se ven igual para una página, una comparación por escrito vale más que las suposiciones. Los pasos siguientes parten de una sola versión del navegador y un solo perfil, de modo que la única variable es el modo de sesión. Usa una página que controles, o un visor público de huellas en el que confíes, y mantén la misma página en ambas ejecuciones.
- Registra la línea base. Anota la versión del navegador, el sistema operativo, el nombre del archivo del perfil y las opciones de arranque. Una comparación solo tiene sentido si todo esto es idéntico en ambas ejecuciones.
- Abre la sesión normal y lee la cuota de almacenamiento y el uso que informa
navigator.storage.estimate(). Anota si se concede el almacenamiento persistente. - Abre una sesión privada con el mismo perfil y lee los mismos valores desde la misma página. Los valores deberían coincidir, teniendo en cuenta los cambios de uso causados por los datos escritos durante la ejecución. Esta coincidencia se espera con un perfil de BotBrowser; un navegador sin modificar puede informar cuotas distintas en modo privado.
- Compara la disponibilidad de service workers, IndexedDB, el almacenamiento local y la API Cache. En ambas sesiones cada interfaz debería estar presente y responder de la misma manera a una escritura de prueba sencilla.
- Compara los valores de la huella que informa tu visor, como el renderizador gráfico, el resultado de audio, la lista de fuentes, los valores de pantalla y la lista de idiomas. Cualquier diferencia entre las sesiones debería explicarse por el modo y no por un perfil u opción modificados.
- Repite tras un reinicio. Cierra todas las ventanas, arranca de nuevo con el mismo perfil y ejecuta la misma comparación. Los resultados que cambian de una ejecución a otra apuntan a un problema de configuración y no a una propiedad estable.
Lee los resultados por categorías. Si la cuota difiere pero los valores de la huella coinciden, la diferencia procede de la capa de almacenamiento. Si los valores de la huella difieren, comprueba que ambas sesiones usan el mismo perfil y las mismas opciones antes de seguir buscando. Si los service workers se registran en una sesión y no en la otra, anota la versión del navegador, porque un comportamiento normal en un navegador sin modificar puede aparecer igualmente como una diferencia en la comparación. Guarda las notas junto al nombre del perfil para poder comparar con ellas la siguiente actualización del navegador.
Mantén estables las condiciones de la prueba. Usa el mismo tamaño de ventana, las mismas extensiones o ninguna, y una cantidad similar de espacio libre en disco, porque cada uno de estos factores puede mover un valor por motivos ajenos al modo. Las cifras de cuota y de uso son estimaciones, así que compáralas de una forma que tolere pequeños cambios y considera un hueco grande y repetible entre las dos sesiones como el hallazgo que merece investigarse.
Ten presentes los límites de esta comprobación. Compara una sesión con otra. No te dice cómo puntúa una visita un sitio concreto, y un resultado limpio no garantiza que un sitio acepte la sesión. Un sitio también puede usar señales que esta comprobación no cubre, como la dirección IP, el historial de la cuenta y el comportamiento a lo largo del tiempo. Considera una coincidencia como prueba de que el modo privado no añadió ninguna diferencia extra, y nada más.
Registra una comparación que puedas releer
| Campo que se escribe en el archivo | Por qué pertenece al registro |
|---|---|
mode | La etiqueta que pones a cada ejecución; la página no puede leerla |
quota y usage | Los valores de almacenamiento devueltos |
persistent | Si la concesión fue concedida o denegada |
apis | Un booleano por interfaz comprobada |
Las notas en una pestaña del navegador desaparecen en cuanto se cierra la ventana, y el modo que estabas comparando es justo lo que se descarta. Escribir un archivo JSON pequeño por ejecución hace que la comparación sobreviva a un reinicio y da a la siguiente actualización del navegador algo con lo que compararse. El script siguiente lee solo valores que la propia página puede leer, así que funciona igual en una página de laboratorio que controles y en un visor de huellas en el que confíes.
display-mode no es una señal de modo privado: una ventana normal y una privada coinciden ambas con browser, y solo una ventana de aplicación instalada coincide con un valor de aplicación como standalone. El script guarda el valor que coincide, así que el campo describe cómo se muestra la página, no el modo de privacidad. mode es la etiqueta que pones tú, una vez por ejecución. El resto del registro se lee de la página.
// evalúa esto en ambas sesiones y copia el JSON impreso a dos archivos
const record = { mode: 'regular' }; // set this to 'private' in the private window
const est = await navigator.storage.estimate();
record.displayMode =
['browser', 'standalone', 'minimal-ui', 'fullscreen', 'window-controls-overlay'].find(
m => window.matchMedia(`(display-mode: ${m})`).matches
) ?? 'none';
record.quota = est.quota;
record.usage = est.usage;
record.persistent = await navigator.storage.persisted();
record.apis = {
serviceWorker: 'serviceWorker' in navigator,
indexedDB: 'indexedDB' in window,
localStorage: 'localStorage' in window,
caches: 'caches' in window,
};
console.log(JSON.stringify(record));
Nombra los dos archivos según la sesión, por ejemplo regular.json y private.json, y compáralos con un diff. Un diff de dos registros con el mismo perfil solo debería mostrar usage, y solo cuando la primera ejecución escribió datos que la segunda aún no había escrito. Cualquier otro campo que difiera es un hallazgo que hay que explicar, no ruido que haya que promediar.
Dos detalles hacen comparable el registro. Lee navigator.storage.estimate() antes de escribir cualquier otra cosa en el almacenamiento, porque la propia escritura cambia usage. Y anota la versión del navegador junto al archivo, ya que un cambio de cuota entre dos versiones del navegador es esperable y un cambio de cuota entre dos sesiones de una misma versión no lo es.
Clasifica una discrepancia en un orden fijo
| Orden | Comprueba antes de culpar al modo |
|---|---|
| 1 | Ambas ejecuciones usaron el mismo archivo --bot-profile |
| 2 | Ambas ejecuciones pasaron las mismas opciones --bot-* |
| 3 | Ninguna cambió el tamaño de ventana ni las extensiones |
| 4 | La página y el visor fueron la misma versión en ambas |
La mayoría de las discrepancias procede de una variable que se movió entre las dos ejecuciones y no del modo privado en sí. Trabajar en un orden fijo evita que repitas la comparación antes de haber revisado las entradas que la convierten en una comparación. Compara primero los dos archivos de registro, después las dos líneas de comando de arranque y solo entonces el comportamiento del navegador.
Empieza por el archivo del perfil. --bot-profile acepta una ruta, y dos sesiones apuntadas a archivos distintos definen cuotas y superficies de huella distintas, así que una discrepancia en este paso es una comparación rota y no un hallazgo del navegador. Compara las rutas absolutas resueltas, no las cadenas escritas en dos shells diferentes.
Después, las opciones. Una sesión que añadió una opción --bot-* en una ejecución y no en la otra está comparando dos configuraciones. Vuelca la línea de comando efectiva de ambas ejecuciones y compárala. La misma regla cubre diferencias de entorno que alteran el arranque, como una variable de proxy definida en un solo shell.
Después, las variables de presentación. El tamaño de ventana, la proporción de píxeles del dispositivo, las extensiones instaladas y el espacio libre en disco mueven un valor cada uno, y ninguno lo decide el modo de navegación. Mantenlos constantes o anótalos junto al resultado para que la diferencia sea atribuible.
Solo tras esas tres comprobaciones tiene sentido mirar el navegador. Si el perfil, las opciones y la presentación son idénticos y un campo sigue difiriendo, la diferencia merece reportarse con los dos archivos de registro, las dos líneas de comando y la versión del navegador. Ese informe es lo que hace que el hallazgo sea accionable y no anecdótico.
Fija el orden por escrito y reutilízalo. Una lista de clasificación que cambia de forma entre investigaciones produce listas que no se pueden comparar, que es el mismo problema que comparar dos sesiones en condiciones distintas.
Elige un aislamiento que no dependa del modo privado
Si lo que realmente necesitas son sesiones que no compartan ni conserven datos, un directorio de datos de usuario hace ese trabajo directamente. Los navegadores basados en Chromium guardan las cookies, el almacenamiento local, IndexedDB y las cachés en el directorio indicado por --user-data-dir. Apuntar cada sesión a su propio directorio las mantiene separadas, y un directorio temporal nuevo no deja nada atrás una vez eliminado. Eso ofrece la misma no persistencia local que da el modo privado, sin diferencias propias de un modo que haya que comparar.
# una sesión con su propio directorio de datos temporal
chromium-browser --bot-profile="path/to/profile.enc" \
--user-data-dir="$(mktemp -d)"
Elige según el propósito. Un directorio distinto por cuenta mantiene separadas las cookies, el estado de inicio de sesión y los datos locales, que es lo que necesita el trabajo con varias cuentas. Un directorio temporal sirve para una tarea puntual que no debe dejar nada en disco. Un directorio persistente sirve para una sesión que debe sobrevivir a los reinicios. El artículo sobre el aislamiento del navegador para varias cuentas describe cómo planificar esos límites. En todos los casos el directorio solo decide qué se almacena. No decide qué aspecto tiene la huella, así que el perfil se sigue eligiendo por separado.
Elimina los directorios temporales cuando termine la tarea. Un script que cree uno debería borrarlo también, y quien lo cree a mano no debería reutilizarlo para otra tarea. Reutilizar un directorio anula el propósito, porque las cookies y los datos de sitios de la primera tarea estarían entonces disponibles para la segunda.
La identidad de red es otra capa distinta. Ni una ventana privada ni un directorio de datos cambian la dirección IP. Un sitio que ve la misma dirección en varias sesiones puede conectarlas con independencia del almacenamiento. Si para tu tarea importa una identidad de red separada, configura un proxy para esa sesión de forma deliberada y comprueba que su ubicación, su idioma y su zona horaria concuerdan con el perfil. Las cookies, la huella y la dirección IP son tres superficies separadas, y cada una exige su propia decisión.
No consideres ninguna de estas opciones como anonimato. Un directorio temporal elimina archivos locales. Un proxy cambia la dirección visible. Un perfil mantiene coherentes los valores que informa el navegador. En conjunto reducen cuánto de una sesión pasa de una visita a la siguiente, pero la cuenta autenticada conserva su vínculo con el servicio, y un sitio puede usar señales que una comparación local no cubre.
Qué cubre BotBrowser y qué queda fuera
BotBrowser puede mantener coherentes las superficies de la huella, los valores de cuota de almacenamiento y el comportamiento de las API de almacenamiento entre sesiones normales e incógnito con el mismo perfil, y la documentación de BotBrowser sobre el modo incógnito describe este comportamiento. Para la comparación anterior, eso significa que un contexto privado no debería mostrar diferencias adicionales de almacenamiento ni de API respecto a uno normal, de modo que una discrepancia es un motivo para revisar el perfil y las opciones y no algo que tengas que aceptar. BotBrowser no puede hacer que la navegación privada oculte la dirección IP ni la actividad del lado del sitio, no controla cómo un sitio puntúa o correlaciona otras señales y no sustituye la configuración del proxy ni las decisiones sobre las cuentas.
La documentación describe además --bot-enable-variations-in-context, una opción para la cabecera X-Client-Data que reciben los dominios de Google en contextos incógnito. Figura como función ENT Tier2 y está desactivada de forma predeterminada. La mayoría de los lectores no la necesita para la comparación de este artículo, pero muestra que el trabajo de coherencia se extiende a detalles que van más allá del almacenamiento.
Para empezar en la práctica, arranca BotBrowser con un perfil, ejecuta la comparación de la sección anterior y espera que el contexto normal y el privado coincidan. Si no coinciden, se aplica la guía de resolución de problemas de la documentación: confirma que ambas sesiones usan el mismo --bot-profile y las mismas opciones --bot-*, porque un perfil distinto puede definir valores de cuota distintos. El aislamiento de sesiones sigue siendo decisión tuya, y las opciones de directorio de datos descritas arriba son la forma de aplicarlo.
Mantén acotado el papel del producto. Se ocupa de la coherencia entre contextos normales y privados. Que un sitio acepte una sesión depende del sitio, de la identidad de red y del historial de la cuenta, y nada de eso es algo que un modo del navegador o un perfil puedan prometer. Usa la comparación como una comprobación dentro de una revisión más amplia de tu configuración, junto con las decisiones de red y de cuenta que siguen siendo tuyas.
Conclusión práctica
Trata el modo privado como limpieza de la sesión local, no como un cambio de identidad de red o del dispositivo. Una comparación útil mantiene constantes el perfil, la versión del navegador y la página, registra los resultados de almacenamiento y API, y elige un directorio de datos o proxy separado solo cuando esa frontera concreta lo exige.
Fuentes públicas
Este artículo forma parte de la guía: Superficies de identidad del navegador: panorama de coherencia
Artículos Relacionados
Qué hace y qué no hace la navegación privada
Huella digitalPrivate Verification Tokens: propuesta de Chrome y BotBrowser
IdentidadVarias cuentas de redes sociales con aislamiento del navegador
Huella digitalFingerprinting DRM: qué revelan las consultas EME y Widevine
IdentidadCambio de marca: Chrome, Edge, Brave, Opera
IdentidadPartición del almacenamiento del navegador y privacidad
Lleva BotBrowser de la investigación a producción
Usa estas guías para entender el modelo y después avanzar hacia validación multiplataforma, contextos aislados y despliegue de navegador preparado para escalar.