Versione headless di Chrome: cos'è e perché sarà più complicato riconoscere i bot

Chrome integra la possibilità di usare il browser senza interfaccia grafica: è questa la versione headless che risulta utile in varie situazioni ma che è anche abusata da alcuni bot.
Versione headless di Chrome: cos'è e perché sarà più complicato riconoscere i bot

Google Chrome è un browser Web che oltre alla classica interfaccia supporta una vasta schiera di opzioni per l’avvio da riga di comando che consentono di modificarne in profondità il funzionamento. È possibile avviare Chrome con oltre 1.400 switch, alcuni di essi davvero molto utili.

Come abbiamo visto nella guida su Google Chrome, è possibile personalizzare il browser e intervenire sul suo comportamento usando i Chrome flags. Gli switch od opzioni richiamabili dal prompt dei comandi permettono di ottenere comportamenti che spesso vanno ben oltre quanto offerto dai flags.

Cos’è la versione headless di Google Chrome

La versione headless di Chrome è una versione del browser Google che può essere utilizzata senza interfaccia grafica.
Può essere utilizzata per eseguire test automatizzati e altre attività che richiedono l’uso del browser ma non l’impiego della tradizionale interfaccia grafica.
La versione headless di Chrome può essere sfruttata per svolgere test di integrazione di un’applicazione Web o per eseguire attività di Web scraping ovvero l’estrazione di dati da un sito, ove ciò sia espressamente permesso o tollerato. Può anche essere usata per eseguire script di automazione, ad esempio per riempire moduli online o fare clic su pulsanti.
Per questi ed altri motivi, i bot fanno ampiamente uso della versione headless di Chrome.

La versione headless può essere utilizzata anche per catturare pagine Web senza installare alcuna estensione aggiuntiva.

Come eseguire Chrome in versione headless

Per provare Chrome in versione headless è possibile ad esempio premere la combinazione di tasti Windows+R in Windows quindi digitare quanto segue:

chrome --headless --disable-gpu --remote-debugging-port=9222 https://www.google.it

Al posto dell’indirizzo di Google si può digitare l’URL del sito Web da verificare.

A questo punto si può ad esempio digitare chrome://inspect nella barra degli indirizzi di un’istanza di Chrome, fare clic sul pulsante Configure e inserire localhost:9222 quindi cliccare su Done. Con un clic sul link Inspect sotto al nome del sito da esaminare, si aprono gli Strumenti per gli sviluppatori che permettono di eseguire il debug dell’applicazione Web aperta in modalità headless.

Più difficile riconoscere Chrome avviato in versione headless

Come ci racconta Antoine Vastel, gli sviluppatori di Google stanno rendendo più complesso il riconoscimento dei client che usano la versione headless.

Fino ad oggi, infatti, le applicazioni Web potevano riconoscere l’utilizzo della modalità headless perché, innanzitutto, ne veniva esplicitamente dichiarato l’uso nella stringa user agent.
Inoltre, in versione headless Chrome mancava dei plugin tipicamente presenti nel normale client: un semplice controllo tramite JavaScript o lato server risultava quindi efficace.

Le attività di fingerprinting saranno quindi sempre possibili ma risulteranno più complesse.
In versione headless, infatti, Chrome simulerà l’utilizzo dei plugin presenti nella versione normale e si servirà della stringa user agent classica.

Ti consigliamo anche

Link copiato negli appunti