GET /widgets/like.php?width=300&show_faces=1&layout=standard&href=http://www.imdb.com/title/tt1470023/
HTTP/1.1 Host: www.facebook.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.38 Safari/533.4
Cache-Control: max-age=0
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: __utma=87286159.95024650.1229115815.1257501181.1257504432.15;
locale=it_IT; lsd=oXejW; c_user=713360587; datr=1232743389-2[…..][…..]a82db3f71bcfb4e652b6;
lo=bG3rNTGVwNb_XhGkftfasg; lxe=eugenio%40schinina.it; lxs=2; sct=1274172610; xs=ca120d8ee7341b01dc86ee8a74c18154;
x-referer=http%3A%2F%2Fwww.facebook.com%2Fhome.php%23%2Fhome.php;
presence=DJ274172612G27[…..][…..]72612QQQ
RESPONSE
HTTP/1.1 200 OK P3P: CP=”DSP LAW” Content-Encoding: gzip Content-Type: text/html;
charset=utf-8
X-Cnection: close Date: Tue, 18 May 2010 08:50:49 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding Connection: Transfer-Encoding
Qualche giorno fa ho espresso agli amici le mie preoccupazioni sulla presenza ormai irrimediabilmente diffusa del pulsante “Like” (da poco riadattato in italiano con “Mi piace”).
Davanti alle loro facce un po’ spiegavo che Facebook è in grado adesso di conoscere le nostre abitudini di navigazione. Sa cioè esattamente quando e su che pagina passiamo, da quale link arriviamo e varie altre cose, probabilmente.
La cosa incredibile è che – in barba a qualunque criterio di privacy – è in grado di associare in maniera diretta questa serie di informazioni al nostro profilo. Vedere sotto per credere.
I (don’t) like this fu*%#g pixel tracking!
Ogni sito che intenda inglobare il pulsante “I like” non fa altro che aprire un IFRAME verso un altro dominio (facebook.com, nella fattispecie). Nella chiamata che ne consegue vengono scambiate interessanti informazioni.
Quello che segue è l’estratto di uno sniffing effettuato accedendo non a Facebook ma ad uno di questi partner sites, nella fattispecie IMDB.com. Di tutto il traffico ho isolato la porzione che accede al widget di FB.
Nei log ho evidenziato quello che mi interessa far notare: nella seconda chiamata, quella fatta da un computer su cui l’utente (il sottoscritto) è loggato su Facebook, noterete la presenza di un paio di dati interessanti, fra cui il mio facebook userid. Devo andare oltre o posso fermarmi qui?
GET /widgets/like.php?width=300&show_faces=1&layout=standard&href=http://www.imdb.com/title/tt1470023/
HTTP/1.1 Host: www.facebook.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT ...... Safari/533.4
Accept: application/xml,application/x[.....]age/png,*/*;q=0.5
Accept-Encoding: gzip,d[.....].8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: __utma=87286159.95024650.1229115815.1257501181.1257504432.15;
lo=6xfx4qgM83b_WezVn2tp-Q; datr=1232743389-2c1f750af4cf324[.....]e652b6;
locale=it_IT
Il server risponde
HTTP/1.1 200 OK P3P: CP="DSP LAW" Content-Encoding: gzip Content-Type: text/html;
charset=utf-8
X-Cnection: close Content-Length: 2465
Vary: Accept-Encoding Date: Tue, 18 May 2010 08:48:51 GMT
Connection: keep-alive
Set-Cookie: reg_fb_gate=http%3A%2F%2Fwww.facebook.com%2Fwi[.....][.....]e%252Ftt1470023%252F;
path=/; domain=.facebook.com
Set-Cookie: reg_fb_ref=http%3A%2F%2Fwww.facebook.com%2Fwi[.....][.....]e%252Ftt1470023%252F;
path=/; domain=.facebook.com
Poco male. Tanti dati in qualche modo oscuri (c’è sicuramente già qualche tipo di tracking), ma niente di così evidente come invece avviene nella caso che segue…
GET /widgets/like.php?width=300&show_faces=1&layout=standard&href=http://www.imdb.com/title/tt1470023/
HTTP/1.1 Host: www.facebook.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows[.....] ri/533.4
Cache-Control: max-age=0
Accept: application/xml,application/xhtm[.....]=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch[.....]US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: __utma=87286159.95024650.1229115815.1257501181.1257504432.15;
locale=it_IT; lsd=oXejW; c_user=713360587; datr=1232743389-2[.....][.....]a82db3f71bcfb4e652b6;
lo=bG3rNTGVwNb_XhGkftfasg; lxe=lamia%40email.it; lxs=2; sct=1274172610; xs=ca120[.....]c18154;
x-referer=http%3A%2F%2Fwww.facebook.com%2Fhome.php%23%2Fhome.php;
presence=DJ274172612G27[.....][.....]72612QQQ
E la risposta del server…
HTTP/1.1 200 OK P3P: CP="DSP LAW" Content-Encoding: gzip Content-Type: text/html;
charset=utf-8
X-Cnection: close Date: Tue, 18 May 2010 08:50:49 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding Connection: Transfer-Encoding
Ho omesso il resto in quanto non interessante.
Notare che il parametro c_user è quello usato da Beacon, prima che venisse spento proprio per questioni di privacy.
Embè, dove sarebbe il problema?
Il problema non c’è, se accettate di fornire gratuitamente ad un operatore d’oltre oceano i dettagli delle vostre abitudini di navigazione. Probabilmente (ma io non ho modo di saperlo, vedi disclaimer) Facebook utilizza questi dati per personalizzare gli annunci che vi propone. O forse li vende ad altri. Chi lo sa?
Cosa posso fare per evitarlo?
Al momento credo che evitare di stare loggati su Facebook (Account, poi Logout) possa mitigare il problema, come documentano i traffici che ho riportato sopra, ma dovrei approfondire.
Alcuni doverosi disclaimer: primo, non sono uno specialista di sicurezza, anche se me ne interesso, quindi è possibile che in alcuni passaggi abbia preso delle cantonate. Secondo, non ho alcun elemento per dire che Facebook con quei dati ci faccia chissà che porcherie. Anzi, per essere precisi non ho neanche elementi di prova per dire che li memorizzino e li utilizzino in qualche modo. So però che cosa sarei in grado di farci io, avendoli a disposizione. E vi assicuro che potrebbe non piacervi. Terzo, Facebook non è certamente il primo è certamente non sarà l’ultimo sito web a fare uso di qualche variazione della tecnica del pixel tracking: la cosa (per me) sconvolgente è che lo faccia associando la navigazione in maniera assolutamente diretta al singolo utente. Infine, devo precisare che la mia analisi è tutt’altro che completa, per questioni di tempo, principalmente. Spero di poter dedicare un altro paio d’ore per completare gli scenari. Mi interessa capire in particolare se il problema si presenta anche quando non si è loggati in Facebook.