JavaScript Fingerprinting & Bot Detection: Come i Siti Web Ti Identificano

2,439 visualizzazioni · mi piace · 59 condivisioni
Condividi su
Di Unled Network · 17 min lettura
JavaScript Fingerprinting e Rilevamento Bot: Come i Siti Web Ti Identificano

Punti Chiave

  • JavaScript fingerprinting raccoglie oltre 50 caratteristiche del browser per creare un identificatore unico, più persistente dei cookie e più difficile da bloccare.
  • I segnali di fingerprinting principali includono Canvas, WebGL, AudioContext, font, proprietà dello schermo e dati dell'API Navigator.
  • I sistemi anti-bot combinano il fingerprinting JS con TLS fingerprinting (JA3/JA4) e analisi comportamentale per un rilevamento bot altamente accurato.
  • I browser headless (Puppeteer, Playwright) e gli strumenti di automazione lasciano tracce rilevabili che il fingerprinting espone: API mancanti, output identici, anomalie di timing.
  • Lo spoofing dei fingerprint è possibile ma sempre più difficile: i sistemi anti-bot usano controlli di coerenza che catturano valori spoofed non corrispondenti.

Ogni volta che visiti un sito web, il tuo browser rivela silenziosamente decine di caratteristiche uniche: la risoluzione dello schermo, il modello della GPU, i font installati, le particolarità dell'elaborazione audio, e il modo esatto in cui il browser renderizza gli elementi canvas invisibili. Combinate insieme, questi segnali creano un impronta digitale del browser altrettanto unica quanto un'impronta digitale umana.

Questa tecnologia alimenta i moderni sistemi di rilevamento dei bot, la prevenzione delle frodi e le difese anti-automazione. Capire come funziona è essenziale sia se stai difendendo il tuo sito web dai bot che se cerchi di comprendere perché certi sistemi di sicurezza sfidano il tuo traffico.

Che Cos'è il Fingerprinting JavaScript?

Il fingerprinting JavaScript è una tecnica che utilizza le API JavaScript lato browser per raccogliere caratteristiche del dispositivo e dell'ambiente, creando un identificatore univoco per ogni sessione di browser. A differenza dei cookie (che gli utenti possono eliminare) o degli indirizzi IP (che cambiano), le impronte digitali sono:

Statistiche di unicità: La ricerca del progetto Panopticlick dell'EFF ha rilevato che l'83,6% dei browser ha un'impronta digitale unica. Quando il fingerprinting canvas è incluso, l'unicità supera il 95%. I sistemi moderni che utilizzano 50+ segnali raggiungono una unicità quasi al 100% nelle tipiche popolazioni di utenti.

Come Funziona il Fingerprinting del Browser

Uno script di fingerprinting generalmente funziona in tre fasi:

  1. Raccolta: Le API JavaScript interrogano le proprietà del browser - oggetto navigator, proprietà dello schermo, rendering canvas, capacità WebGL, elaborazione AudioContext, ecc.
  2. Hashing: I valori raccolti vengono combinati e sottoposti a hash (solitamente SHA-256 o MurmurHash3) in una stringa di impronta digitale compatta
  3. Confronto: L'hash viene confrontato con le impronte digitali note, corrispondendo a un visitatore precedente, a uno strumento bot noto, o a un ambiente falsificato

Segnali di Fingerprinting Chiave

Canvas Fingerprinting

Il segnale di fingerprinting più potente. Un elemento <canvas> nascosto disegna testo, forme e gradienti. L'output pixel per pixel varia in base alla GPU, alla versione del driver, al motore di rendering dei font e all'implementazione dell'anti-aliasing. Due dispositivi diversi quasi mai producono output canvas identici.

WebGL Fingerprinting

WebGL espone informazioni sulla GPU (renderer, vendor) e produce output di rendering unico. L'estensione WEBGL_debug_renderer_info rivela il modello esatto della GPU. Combinato con i test di rendering WebGL, crea un'impronta digitale hardware forte.

AudioContext Fingerprinting

L'API Web Audio elabora i segnali audio diversamente su ogni dispositivo a causa delle differenze hardware e software. Generando un oscillatore e analizzando l'output, gli script di fingerprinting catturano caratteristiche uniche dell'elaborazione audio.

Font Fingerprinting

Diverse versioni del sistema operativo, language pack e applicazioni installate aggiungono collezioni di font uniche. Misurando la larghezza/altezza di rendering del testo in vari font, gli script determinano quali font sono installati, creando un'impronta digitale basata sui font.

Proprietà Navigator e Screen

SegnaleCosa RivelaEntropia
navigator.userAgentVersione browser, sistema operativo, tipo di dispositivoMedia (facilmente falsificabile)
navigator.languageLingua/lingue preferiteBassa-Media
navigator.hardwareConcurrencyNumero di core CPUBassa
navigator.deviceMemoryQuantità di RAM (approssimativa)Bassa
screen.width/heightRisoluzione del displayMedia
screen.colorDepthCapacità di profondità coloreBassa
navigator.platformStringa piattaforma del sistema operativoBassa (deprecata)
navigator.maxTouchPointsCapacità touchBassa
Intl.DateTimeFormat().resolvedOptions().timeZoneFuso orarioMedia

Segnali Aggiuntivi di Alto Valore

TLS Fingerprinting (JA3/JA4)

TLS fingerprinting opera a livello di connessione, prima che JavaScript venga eseguito:

JA3 Fingerprinting

Creato da Salesforce, JA3 genera un hash dei componenti del messaggio TLS Client Hello: versione SSL, cipher, estensioni, curve ellittiche e formati di punti EC. Ogni client HTTP (Chrome, Firefox, Python requests, Go http, curl) produce un hash JA3 univoco. Questo identifica il software client effettivo anche quando gli header user-agent sono falsificati.

JA4 Fingerprinting

Lo standard JA4 più recente migliora JA3 con un formato più leggibile e un tracciamento delle versioni migliore. Crea una stringa di fingerprint come "t13d1715h2_8daaf6152771_b0da82dd1658" che codifica la versione TLS, il numero di cipher, il numero di estensioni e i valori ALPN.

Perché il TLS fingerprinting è devastante per i bot: Falsificare un fingerprint TLS richiede di modificare la libreria TLS a livello C/C++, molto più complesso che cambiare stringhe user-agent. La maggior parte degli operatori di bot utilizza librerie HTTP Python, Go o Node.js che hanno hash JA3 distintivi che li identificano immediatamente come client non-browser.

Come i Sistemi Anti-Bot Utilizzano il Fingerprinting

Le moderne soluzioni anti-bot come Cloudflare Bot Management, Akamai Bot Manager e DataDome combinano il fingerprinting con più livelli di rilevamento:

  1. Verifica del fingerprint TLS: Verificare che la connessione provenga da un vero browser, non da una libreria HTTP
  2. Esecuzione JavaScript: Eseguire script di raccolta fingerprint, i bot che non riescono a eseguire JS vengono immediatamente segnalati
  3. Validazione della coerenza: Verificare che il fingerprint JS corrisponda al fingerprint TLS (ad esempio, se JA3 dice Chrome ma canvas dice headless, segnalarlo)
  4. Confronto con bot noti: Confrontare il fingerprint con il database delle firme note degli strumenti bot
  5. Overlay comportamentale: Combinare il punteggio del fingerprint con il movimento del mouse, la tempistica dei clic e i pattern di scorrimento

Rilevamento dei Browser Headless

I browser headless (Chrome headless, Puppeteer, Playwright) lasciano segni caratteristici:

Spoofing del Fingerprint e Anti-Detection

Diversi strumenti tentano di modificare i fingerprint del browser:

StrumentoApproccioRischio di Rilevamento
GoLoginChromium personalizzato con profili fingerprint configurabiliMedio
MultiloginBrowser simulato con personalizzazione avanzata del fingerprintMedio
Puppeteer Extra (Stealth)Plugin che corregge gli artefatti rilevabili di PuppeteerMedio-Alto
undetected-chromedriverChromeDriver modificato che evita i rilevamenti comuniMedio-Alto
Estensioni browserCanvas blocker, spoofing WebGLAlto (aggiunge artefatti rilevabili)
La sfida fondamentale dello spoofing: Modificare l'output canvas per abbinare una GPU diversa richiede di simulare perfettamente la pipeline di rendering di quella GPU. I sistemi anti-bot testano centinaia di micro-variazioni quasi impossibili da simulare in modo coerente. L'incoerenza tra i valori falsificati è spesso più rilevabile del fingerprint originale.

Strategie di Difesa per i Proprietari di Siti Web

Se stai proteggendo il tuo sito web dai bot, implementa il fingerprinting come parte di una difesa stratificata:

Implicazioni sulla Privacy

Il browser fingerprinting solleva preoccupazioni significative sulla privacy. I principali browser stanno limitando sempre più le capacità di fingerprinting:

Proteggi il Tuo Sito Web dagli Attacchi Bot

Il nostro team di sicurezza implementa rilevamento bot completo, fingerprinting, protezione DDoS e configurazione WAF per siti web e applicazioni sotto attacco.

Telegram: @unlednetwork ->    Contattaci su WhatsApp ->

Commenti

Hai una domanda o esperienza diretta? Partecipa alla conversazione.

    Nina L.

    Exactly what we needed. Our team was debating the best strategy.

    Author

    Good point. The combination of proper structure and testing makes all the difference for this strategy.

Partecipa alla conversazione

Niente HTML. I commenti sono moderati.

What You Get

High Trust Score

Pre-established account with positive activity history and cleared standing

Ready to Spend

Skip the warm-up phase - accounts are ready for immediate campaign launch

High Spend Ceiling

Elevated daily and monthly spend limits from day one

30-Day Replacement

Full replacement if account triggers suspension within 30 days

24h Delivery

Credentials delivered within 24 hours of payment confirmation

Dedicated Support

Direct Telegram/WhatsApp line to your account manager

WhatsApp Telegram