
Un proxy sigiloso HTTP de nueva generación que enmascara perfectamente las peticiones como el navegador Chrome en todas las capas de la pila.
"¡No lo creo, camuflaje termoóptico!"
Este es un proxy HTTP diseñado para eludir servicios que utilizan fingerprinting como JA4+ para bloquear ciertos clientes HTTP. Usando este proxy, puedes usar tus clientes HTTP preferidos como curl y aún tener fingerprints mágicamente indistinguibles de un navegador web real (Chrome/Chromium). thermoptic también viene con algunas características divertidas para mitigar el fingerprinting basado en JavaScript. También facilita hacer scraping híbrido usando tanto un navegador web como clientes HTTP de bajo nivel juntos.
Incluso si no estás familiarizado con el fingerprinting JA4+, si has hecho algo de scraping probablemente ya te habrás encontrado bloqueado por él antes. Servicios populares como Cloudflare utilizan tales técnicas (y otros trucos) para detectar el uso de clientes HTTP "no humanos" y bloquear solicitudes. Estos servicios también pueden usar este fingerprinting para detectar si inicias una sesión con un navegador real y luego cambias a un cliente de bajo nivel como curl más tarde. thermoptic resuelve todos estos problemas presentando un fingerprint de navegador "real" unificado para todas las solicitudes de scraping.
Aquí hay un ejemplo de fingerprint JA4H (HTTP) de curl sin el proxy:
$ curl https://ja4db.com/id/ja4h/
ge11nn090000_b6a016211e8a_000000000000_e3b0c44298fc
Esto es bastante diferente de la huella digital que produce Chrome cuando visitas la URL directamente:
ge11cn19enus_f2808f0d04cf_9a10d4221160_7068f58def6e
Sin embargo, cuando usamos el proxy para hacer la petición, nuestra huella JA4H es mágicamente idéntica:
$ curl --proxy http://thermoptic:1234 https://ja4db.com/id/ja4h/
ge11cn19enus_f2808f0d04cf_9a10d4221160_7068f58def6e
(Lo mismo ocurre con nuestra huella TLS JA4, etc.).
Para iniciar un proxy thermoptic que oculta tu tráfico a través de una instancia de Chrome en contenedor sobre Ubuntu 22.04:
Configuración estándar de Docker (funciona en hosts sin un runtime de GPU):
docker compose up --build
Eso es todo, ahora puedes proxyar el tráfico a través de él:
curl --proxy http://127.0.0.1:1234 --insecure https://ja4db.com/id/ja4h/
Notas importantes:
PROXY_USERNAME y PROXY_PASSWORD.---insecure necesitas usar el archivo CA generado ubicado en ./ssl/rootCA.crt. Este se genera la primera vez que ejecutas thermoptic.thermoptic a cualquier instancia de Chrome/Chromium lanzada con el flag --remote-debugging-port. Esto es esencial, ya que querrás configurar y hacer proxy a través de entornos más comúnmente usados para mantener tu huella lo más discreta posible (p. ej. Chrome en Windows)./dev/dri y permite que el contenedor Chrome incluido cambie a la ruta de renderizado NVIDIA/Vulkan. Para usarlo, ejecuta docker compose -f docker-compose.yml -f docker-compose.gpu.yml up --build.curl, requests, etc.) con thermoptic, solo configura el proxy y tus huellas quedan cubiertas../hooks/onstart.js.http://127.0.0.1:14111) para controlar la ventana del navegador Chrome dockerizado. Útil para iniciar sesión manualmente en sitios y luego usar sin problemas el proxy para hacer solicitudes como tu sesión autenticada (y para depuración).UPSTREAM_PROXY en docker-compose.yml.
curl con thermoptic configurado como proxy.thermoptic analiza la solicitud para determinar lo mejor posible qué tipo de solicitud de navegador se supone que es (p. ej. ¿visita manual de URL? ¿Envío de formulario? ¿Una solicitud fetch()?).thermoptic usa el Chrome Debugging Protocol (CDP) para controlar el navegador y configurar una página que simula la solicitud exactamente como ocurriría normalmente en un navegador web real.thermoptic desencadena la solicitud a través del contexto simulado y captura la respuesta HTTP.thermoptic envía la respuesta HTTP de vuelta al cliente.Debido a que el navegador realmente realiza la solicitud usando su stack completo, las huellas JA4 resultantes son idénticas.
NOTA: Debido a que muchos WAF emplean fingerprinting a nivel de JavaScript de los navegadores web, thermoptic también expone hooks para utilizar el navegador en pasos clave del proceso de scraping. Consulta esta sección para más información sobre esto.
Para decirlo sin rodeos: otros enfoques tienen fallos fundamentales que les impiden ser una solución práctica a largo plazo para el problema del fingerprinting de navegadores.
Muchos otros intentos de "vencer" el fingerprinting JA4+ de navegadores lo hacen reimplementando las distintas capas del stack del navegador. Este enfoque tiene una serie de inconvenientes graves, como: