
Un proxy HTTP stealth di nuova generazione che maschera perfettamente le richieste come browser Chrome su tutti i livelli dello stack.
"Non ci credo, camouflage termottico!"
Questo è un proxy HTTP progettato per aggirare i servizi che utilizzano il fingerprinting come JA4+ per bloccare determinati client HTTP. Usando questo proxy, puoi utilizzare i tuoi client HTTP preferiti come curl e avere comunque magicamente fingerprint indistinguibili da un vero browser web (Chrome/Chromium). thermoptic include anche alcune funzionalità divertenti per mitigare il fingerprinting basato su JavaScript. Rende inoltre semplice eseguire scraping ibrido utilizzando insieme sia un browser web che client HTTP a basso livello.
Anche se non hai familiarità con il fingerprinting JA4+, se hai fatto un po' di scraping probabilmente sei già stato bloccato da esso. Servizi popolari come Cloudflare utilizzano tali tecniche (e altri trucchi) per rilevare l'uso di client HTTP "non umani" e bloccare le richieste. Questi servizi possono anche usare questo fingerprinting per rilevare se inizi una sessione con un browser reale e poi passi a un client a basso livello come curl in seguito. thermoptic risolve tutti questi problemi presentando un fingerprint unificato di un browser "reale" per tutte le richieste di scraping.
Ecco un esempio di fingerprint JA4H (HTTP) di curl senza il proxy:
$ curl https://ja4db.com/id/ja4h/
ge11nn090000_b6a016211e8a_000000000000_e3b0c44298fc
Questo è piuttosto diverso dall'impronta digitale che Chrome produce quando visiti direttamente l'URL:
ge11cn19enus_f2808f0d04cf_9a10d4221160_7068f58def6e
Tuttavia, quando utilizziamo il proxy per effettuare la richiesta, la nostra impronta JA4H è magicamente identica:
$ curl --proxy http://thermoptic:1234 https://ja4db.com/id/ja4h/
ge11cn19enus_f2808f0d04cf_9a10d4221160_7068f58def6e
(Lo stesso vale anche per la nostra impronta JA4 TLS, ecc.).
Per avviare un proxy thermoptic che maschera il tuo traffico attraverso un'istanza Chrome containerizzata su Ubuntu 22.04:
Configurazione Docker standard (funziona su host senza runtime GPU):
docker compose up --build
Ecco fatto, ora puoi instradare il traffico attraverso di esso:
curl --proxy http://127.0.0.1:1234 --insecure https://ja4db.com/id/ja4h/
Note importanti:
PROXY_USERNAME e PROXY_PASSWORD.---insecure devi usare il file CA generato che si trova in ./ssl/rootCA.crt. Questo viene generato la prima volta che esegui thermoptic.thermoptic a qualsiasi istanza di Chrome/Chromium avviata con il flag --remote-debugging-port. Questo è essenziale poiché vorrai configurare e fare proxy attraverso ambienti più comunemente usati per mantenere il tuo fingerprint il più discreto possibile (ad es. Chrome su Windows)./dev/dri e consente al container Chrome incluso di passare al percorso di rendering NVIDIA/Vulkan. Per usarlo, esegui docker compose -f docker-compose.yml -f docker-compose.gpu.yml up --build.curl, requests, ecc.) con thermoptic, basta impostare il proxy e i tuoi fingerprint vengono gestiti../hooks/onstart.js.http://127.0.0.1:14111) per controllare la finestra del browser Chrome dockerizzato. Utile per accedere manualmente ai siti e poi usare senza problemi il proxy per effettuare richieste come la tua sessione autenticata (e per il debug).UPSTREAM_PROXY in docker-compose.yml.
curl con thermoptic impostato come proxy.thermoptic analizza la richiesta per determinare al meglio quale tipo di richiesta del browser dovrebbe essere (ad es. visita manuale di un URL? Invio di un form? Una richiesta fetch()?).thermoptic usa il Chrome Debugging Protocol (CDP) per pilotare il browser e configurare una pagina che simula la richiesta esattamente come avverrebbe normalmente in un vero browser web.thermoptic attiva la richiesta tramite il contesto simulato e cattura la risposta HTTP.thermoptic invia la risposta HTTP al client.Poiché il browser effettua effettivamente la richiesta usando il suo stack completo, i fingerprint JA4 risultanti sono identici.
NOTA: Poiché molti WAF impiegano il fingerprinting a livello JavaScript dei browser web, thermoptic espone anche degli hook per utilizzare il browser per passaggi chiave del processo di scraping. Vedi questa sezione per maggiori informazioni su questo.
Per dirla senza giri di parole: altri approcci hanno difetti fondamentali che impediscono loro di essere una soluzione pratica a lungo termine al problema del fingerprinting del browser.
Molti altri tentativi di "battere" il fingerprinting JA4+ del browser lo fanno reimplementando i vari livelli dello stack del browser. Questo approccio presenta numerosi svantaggi seri, come: