En parte, la definición de un navegador antidetección viene dada por el propio nombre. Cada navegador convencional (por ejemplo, Chrome o Firefox) tiene su propia identidad en línea. A esto lo llamamos huella digital. La forma en que se toma la huella digital de tu navegador es muy compleja. Tiene que ver con aspectos como:
- Tu dirección IP
- El agente de usuario que enviáis con vuestras solicitudes
- Las propiedades de tu navegador
Ahora bien, diría que este último es el más importante. Esto se debe a que cualquiera en Internet puede crear un script relativamente sencillo para obtener ciertas propiedades de un navegador. Y lo más importante es que, casi siempre, la combinación de estos valores genera una configuración del sistema única. En la práctica, se puede generar un hash de los valores combinados y convertidos en cadena de estas propiedades y crear una huella digital. Tomemos como ejemplo FingerprintJS o CreepJS.
Además, la detección no se limita al ámbito de la ventana. Incluso he creado esta herramienta que puede detectar evasiones como las implementadas con `puppeteer-extra-plugin-stealth` comparando los valores recopilados de la ventana y los trabajadores. Pero ese es un tema más complejo. Por ahora, parece que la mejor manera de pasar desapercibido en línea es utilizar un navegador antidetección.
Y volvemos al tema. Los navegadores antidetección son aplicaciones basadas en navegadores conocidos que han sido modificados para aceptar valores personalizados para las propiedades que hemos comentado anteriormente. Dado que proyectos como Chromium o Mozilla son de código abierto, cualquiera puede bifurcarlos y crear su propia versión de un navegador. Y eso es exactamente lo que ocurre también con los navegadores antidetección.
Tú también puedes clonar Chromium, por ejemplo, y modificarlo para que utilice valores aleatorios en diversas propiedades del navegador. Pero, en la práctica, esto requiere muchos conocimientos y recursos. Por eso existen algunos proveedores conocidos, de los que hablaremos en un momento. Pero primero: