15 Lug 2009
Inserito da: Andrea Lanfranchi in: Mondo IT
Molti utenti Windows si dannano l’anima per cercare di proteggersi dagli attacchi continui che si subiscono navigando in rete. Non solo attacchi malevoli : spesso ci trova letteralmente a combattere con le pagine web alla ricerca di quel pezzetto di informazione tanto agognata e soffocata in mezzo (a volte anche sotto) a banner pubblicitari di ogni tipo, forma e specie. Senza contare i tracking cookies ed i tracking script che riceviamo affinchè i titolari dei siti internet visitati possano approfondire l’analisi statistica delle visite.
Contro questi ultimi in particolare ho veramente il dente avvelenato: se vuoi farti le tue statistiche sugli accessi scaricati il log del webserver e non impormi di scaricare uno script da un sito terzo (vedasi analytics di Google).
Esistono comunque molti prodotti che permettono di “scremare” il download di una pagina web separando il grano dal loglio: il migliore che conosco è AdBlock, componente plug-in per Mozilla Firefox. Ma non è obbligatorio montare uno strumento specifico per proteggersi. Armandosi di un poco di pazienza è possibile sfruttare quello che mette già a disposizione il computer per impostazione predefinita: ovvero la risoluzione dei nomi DNS.
Cosa è ? Semplice. Ogni volta che nel browser digitate un indirizzo del tipo http://www.qualchecosa.com il computer interroga il server DNS configurato nelle proprietà della scheda di rete e chiede a quale indirizzo IP (nella forma xxx.xxx.xxx.xxx) corrisponda il nome host www.qualchecosa.com. Questo processo si chiama risoluzione DNS diretta. Ottenuto l’indirizzo IP, il computer invia una richiesta al computer che corrisponde a quell’indirizzo per ottenere i contenuti che sono abbinati al nome www.qualchecosa.com. Ho semplificato molto ma il succo è questo.
Il processo di risoluzione diretta, però, può essere modificato e, invece di affidarci alla risposta che proviene dal server DNS, possiamo imporre una risposta preconfezionata. Il posto in cui andremo a scrivere queste risposte obbligate è il file hosts: ovvero il file che il computer interroga prima di effettuare un’operazione di risoluzione DNS su un server remoto.
Il file hosts si trova nella cartella %WINDIR%\system32\drivers\etc (dove %WINDIR% è la directory di Windows) ed è un normale file di testo (editabile con notepad o con l’editor che preferite) il cui contenuto predefinito è molto simile (o uguale) al seguente:
# Copyright (c) 1993-2006 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
::1 localhost
Analizzando il file iniziamo già a riconoscere alcune voci “familiari” come localhost o 127.0.0.1. In pratica il file riporta, per ogni riga, un’accoppiata di nome host e relativo indirizzo IP abbinato. Succede quindi che se digitiamo nel browser l’indirizzo http://localhost il computer vede che nel file hosts il nome localhost è abbinato all’indirizzo IP 127.0.0.1 e quindi invierà una richiesta a quell’IP che, per convenzione, è l’indirizzo di loopback del computer … ovvero se stesso. Nell’esempio che vi ho riportato vedete che localhost è anche abbinato all’indirizzo IP ::1 che altro non è che l’indirizzo di loopback per gli indirizzi IP espressi nella forma IPv6. 127.0.0.1 è invece nella forma IPv4.
Sicuramente iniziate già ad intuire qualche cosa.
Quando si naviga sulle pagine dei siti internet che ci interessano riceviamo, dal server che abbiamo interrogato, un documento HTML che contiene una serie di informazioni su quali contenuti visualizzare, come ottenerli, come posizionarli ed eventualmente quali azioni eseguire. L’aspetto più importante riguarda il “come ottenere” i contenuti o meglio da dove pescarli. Se vi prendete la briga di analizzare l’HTML di una pagina fitta fitta di advertising (pubblicità) vi accorgerete che sono riportate moltissime origini di dati esterne alla pagina di cui avete fatto esplicita richiesta. Per semplicità potete utilizzare un comodissimo strumento (per Windows) che vi dice, per ogni pagina scaricata, quanti server avete in realtà interrogato e quanta roba, di cui non vi frega assolutamente nulla, avete scaricato. Lo strumento è Fiddler e lo trovate a questo link.
A questo punto il passo successivo è immediato: visto che non mi interessa nulla scaricare gli script di google-analytics oppure di vedere le sponsorizzazioni di google, mi basterà modificare il file hosts in questo modo:
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
::1 localhost
127.0.0.1 googleads.g.doubleclick.net # ads di google
127.0.0.1 pagead2.googlesyndication.com # ads di google
127.0.0.1 www.google-analytics.com # tracking script di google analytics
Attenzione ! Le due righe di localhost devono restare le prime due. Tutto quello che scrivete dopo il cancelletto (#) viene considerato come commento.
Salvate il file e riprovate la navigazione sulla stessa pagina. L’apertura della pagina sarà più rapida e non visualizzerete più la fastidiosa pubblicità di google. Il motivo è semplice: il computer richiederà a se stesso (127.0.0.1) i contenuti che dovrebbero essere erogati dal sito, per esempio, pagead2.googlesyndication.com ma ovviamente non dispone dei file richiesti e non ritorna nulla.
Attenzione ! Se utilizzate Windows Vista dovete avere i permessi di amministratore per applicare modifiche al file hosts.
Con il tempo aggiungerete sempre più nomi di host dei cui “servizi” o contenuti non vi interessa nulla.
Con questa tecnica non solo aumentate la velocità di navigazione sul web (dal momento che non scaricherete più ciò che non vi interessa) ma potrete anche aumentare la sicurezza della navigazione: presso il questo sito ( http://www.mvps.org/winhelp2002/hosts.htm ) potete trovare un corposo file hosts (da applicare sul vostro pc) che contiene già i nomi di host più fastidiosi o che sono noti per cercare di “iniettare” nel vostro computer contenuti non desiderati.
Happy surfing.