IE, iFrames e la fantomatica Platform for Privacy Preferences (P3P)


Passare la notte a leggere di direttive europee in materia di privacy, hacks degli header per IE per fargli visualizzare iframes ospitati altrove, Facebook che se ne frega, il W3C che pensa ancora di contare qualcosa e gli altri browser che improvvisano opzioni di privacy…. CHE bella notte insomma.

Il tutto nasce da un’app su Facebook (ormai tutte rigorosamente incluse tramite iframes + certificato SSL), che essendo giustamente su altro server, ma necessitando di controllare se l’utente è loggato o meno a FB, rifiuta di visualizzarsi, in IE (7,8,9! il 6 per me non esiste proprio più).

Caso 1. Appare un tragico messaggio di errore/allarme/attentato… l’iframe non è sicuro, il tuo PC sta per esplodere, gli alieni ti rapiranno stanotte…. => l’utente se ne va dalla pagina, installa l’ultimo Norton e stacca la spina del PC per una settimana
Caso 2. La pagina e l’iframe dentro si caricano a metà (?), chiedendo all’utente se è veramente sicuro di rischiare la catastrofe naturale e farsi risucchiare dallo schermo…. => l’utente potrebbe (non vedere la richiesta e) andarsene, maledicendo voi e la pagina caricata a metà, oppure fidarsi ed accettare di visualizzare tutto il contenuto
In entrambi gli scenari, mi assale uno sconforto legato a tetri ricordi del web degli anni 90, e vorrei farne a meno se possibile.

Per IE, gli iframes della mia app (che NON fa nessun tracking NE’ crea cookies propri) stanno cercando di fregare l’utente, guardandogli tra i cookies se per caso c’è una sessione FB usabile (l’app ha bisogno solo dell’ID utente per salvarsi piccoli file html unici, con settaggi fatti dall’utente stesso, i quali si autodistruggono quando l’utente disinstalla/modifica i settaggi dell’app).

Poiché questo non accade con nessun altro browser, il fastidio provato era troppo per non voler capire meglio la situazione.
Non l’avessi mai fatto….

Il simpatico mondo del P3P (Platform for Privacy Preferences), animalo raro e pressoché estinto, allevato dal W3C e ratificato come standard nel 2002, è sicuramente uno dei più incompresi nella storia delle incomprensioni, controsensi e nonsensi, del W3C…. onanismo mentale figlio degli anni 90/00 e della psicosi da privacy online (o mancanza di essa).
Dopo Facebook, penso che anche i più isterici e paranoici si siano rassegnati: la privacy non esiste più. Se non volete essere analizzati, cavizzati, usati, venduti e quant’altro, spegnete il computer.

Documentazione incomprensibile ed inutilizzabile scritta da sadomasochisti (il W3C), mancanza di validi esempi reali, una moltitudine di consigli fai-da-te totalmente casuali sul come aggirare i controlli di IE negli iframes… insomma non si capisce né come utilizzare lo “standard” P3P debitamente, né come toglierselo dalle balle.

Il P3P nasce fondamentalmente per dare la possibilità agli utenti di decidere se, ed in che modo, essere tracciati dai cookies. E fin qui, niente da dire.
Se non fosse che l’utente medio i cookies al massimo se li mangia a merenda, non ha idea di cosa vogliano dire le eventuali opzioni del browser (ammesso che sappia come arrivarci) e se anche riuscisse a dotarsi di un setup custom anti-cookie, non potrebbe più accedere al 90% dei siti che usa oggi.
Se il W3C non ci mettesse decadi per ratificare gli standard, forse qualcuno riuscirebbe a beneficiarne, seppur per brevi periodi di tempo, vista la velocità di sviluppo del/nel Web.

Mozilla e il panda rosso Firefoxiano, hanno immediatamente adottato lo standard, al tempo, per poi smollarlo velocemente nelle versioni successive… infatti adesso, non esiste più traccia tra le opzioni (nemmeno da about:config) del P3P, ma è rimasta una tristissima opzioncina “Dì ai siti che non voglio essere tracciato”. Cosa significa poi nella pratica, non lo sappiamo e francamente nemmeno ci interessa… ci sono decine di estensioni ad-bloccanti e cookie-inibenti, nel caso.

Dal canto suo, Facebook, in maniera ufficiale, dice che non gliene frega nulla del P3P, che è obsoleto e che lui non ha intenzione di dare nessun supporto a riguardo (e gli sviluppatori?!). Auguri.

Altri si sono, su Hacker News, chiesti la reale utilità, e anche se ci fosse, della mancanza dell’applicazione dello standard P3P in maniera omogenea cross-browser e cross-platform…

Ergo, il P3P è morto prima di diventare qualcosa da poter prendere seriamente in considerazione, ed i suoi resti sono appesi all’amico Internet Explorer, che se lo trascina dietro non si sa bene per quale motivo, se non per nobiltà d’intenti (o per cercare di far fuori Google e AdSense, come d’altra parte prova a fare da tempo, invano).

Sarebbe tutto così scarsamente interessante, sennonché IE è ancora in giro con tutti i suoi antenati e continua a sfrantumarci gli zeby con problemi e problemini da orticaria, potete scegliere di ignorarlo oppure perdere 10 anni di vita provando a risolvere la questione (come ho fatto, ahimé, io).

Vi serviranno:
– policy in xml
es.
[cc lang=”xml”]


/*

miosito.com
[email protected]

[/cc]
– header custom con i codici dei compact elements corrispondenti realmente all’attività della vostra app/iframe, da mettere in TUTTI i file collegati al benedetto iframe
es.
[cc lang=”php”]

[/cc]

Se volete provare a risolvere l’enigma di IE+iframes, ecco qualche risorsa utile:

– Tutti i Compact Elements, per i vostri header https://www.p3pwriter.com/LRN_111.asp
– Se pensate (illusi!) di aver finito di fare la policy in versione xml e volete validarla (anche gli header!) https://www.w3.org/P3P/validator.html
– Anche Microsoft prova a darvi una mano… cacciandovi due dita negli occhi forse https://msdn.microsoft.com/en-us/library/ms537341%28v=vs.85%29.aspx
– Sapevate che esistono anche i cookies insoddisfacenti? https://msdn.microsoft.com/en-us/library/ms905230.aspx Sapevatelo!
– Vagamente utile, per costruire una policy xml semiautomatica https://www.webentrust.com/p3ptools/editor/templates.html
– Esempio concreto di chi c’è riuscito https://stackoverflow.com/questions/389456/cookie-blocked-not-saved-in-iframe-in-internet-explorer

Sono Consulente Digitale, WordPress Specialist e Web Designer, creo siti da 17 anni.
Abitualmente uso PHP/MySQL, HTML5/CSS3/Javascript, Twitter Bootstrap e WordPress, ma non solo.
Aiuto aziende, professionisti e startup ad utilizzare la tecnologia per crescere, creando Team di designer & sviluppatori, pianificando progetti e strategie, sviluppando soluzioni complesse.