
guide
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Una panoramica su P3P, il linguaggio del W3C per gestire le informazioni sulla privacy e sapere cosa fare con i dati personali
Oltre ad un adempimento di legge, la gestione trasparente dei dati personali è un fatto di correttezza e professionalità. Questo vale anche per i dati acquisiti tramite un sito Web.
La maggior parte dei siti Web professionali presenta una nota che riepiloga le politiche di gestione dei dati adottata. Ma quanti di noi hanno mai letto con attenzione le clausole riportate all’interno di una form? Se qualcuno lo ha fatto, dubito che lo faccia ad ogni occasione! Eppure le politiche di gestione dei dati personali potrebbero differire da un sito Web all’altro in base alle politiche aziendali, alle leggi locali e ad altri fattori.
È nel nostro interesse leggere attentamente le modalità di gestione dei nostri dati per decidere se fornirli o meno. Purtroppo le dichiarazioni delle modalità di gestione della privacy spesso sono molto lunghe e non sempre di immediata comprensione.
Per cercare di ovviare a questi problemi, il W3C ha definito uno standard tecnico per la definizione formale delle politiche di gestione dei dati personali. Questo standard, basato su XML, è chiamato Platform for Privacy Preferences Project, o più brevemente P3P.
L’idea che sta dietro al P3P è abbastanza semplice: definito un linguaggio formale per la definizione delle politiche di gestione dei dati personali, è possibile interpretarle in maniera automatica e confrontarle con le preferenze dell’utente riguardo alla gestione dei propri dati.
Supponiamo, ad esempio, che un utente utilizzi un browser abilitato al P3P e che lo abbia configurato in modo da essere avvisato quando un sito che richiede i dati anagrafici dichiara che li utilizzerà anche per inviare materiale commerciale.
Il nostro utente, quindi, nel momento in cui si troverà sulla form di un sito di e-commerce che dichiara che utilizzerà i dati per la sola transazione che si sta effettuando non avrà alcun avviso, dal momento che non viola le proprie impostazioni di privacy. Se invece il sito dichiara che i dati inseriti verranno utilizzati per inviare materiale commerciale, il browser visualizza una finestra che avvisa l’utente del fatto che la politica di gestione dei dati personali adottata dal sito è in conflitto con le proprie impostazioni.
Naturalmente questo meccanismo non garantisce che effettivamente i dati vengono gestiti secondo le dichiarazioni fornite. P3P si limita a semplificare l’attività di lettura delle dichiarazioni fornite da un sito Web.
Non ci resta a questo punto che tradurre in P3P le due politiche di gestione individuate. Tradurre le politiche di gestione dei dati personali in P3P significa essenzialmente pubblicare una serie di file XML che le descrivono.
Si tratta di due tipi di file: un Policy Reference file e tanti Policy file quante sono le politiche di gestione adottate. Il primo file descrive le politiche adottate ed assegna tali politiche a ciascuna area del sito, mentre gli altri file contengono la descrizione XML di ciascuna politica.
Nel nostro caso, il contenuto del Policy Reference file sarà analogo al seguente:
Listato 1. Esempio di Policy Reference file
<META xmlns=”http://www.w3.org/2002/01/P3Pv1″>
<POLICY-REFERENCES>
<POLICY-REF about=”/P3P/UserDataPolicy.xml”>
<INCLUDE>/richInfo.html</INCLUDE>
</POLICY-REF>
<POLICY-REF about=”/P3P/ BrowserPolicy.xml “>
<INCLUDE>/*</INCLUDE>
</POLICY-REF>
</POLICY-REFERENCES>
</META>
Questo file XML contiene l’elenco dei riferimenti alle politiche adottate (<POLICY-REFERENCES>
). Ciascun riferimento è individuato dagli elementi <POLICY-REF>
.
Il primo riferimento indica che la politica descritta nel file /P3P/UserDataPolicy.xml si applica alla pagina richInfo.html . Il secondo riferimento indica, invece, che la politica descritta dal file /P3P/BrowserPolicy.xml si applica a tutte le pagine del sito.
Per ciascun riferimento è possibile indicare più elementi <INCLUDE>
. È inoltre possibile indicare le eventuali pagine o cartelle esplicitamente escluse da una determinata politica tramite l’elemento <EXCLUDE>
. È importante sottolineare la rilevanza dell’ordine dei riferimenti. Infatti le politiche vengono analizzate dai browser in base all’ordine di apparizione.
La politica di gestione generale, cioè quella descritta dal file /P3P/BrowserPolicy.xml, sarà descritta dal seguente codice:
Listato 2. Politica di gestione generale
<POLICIES xmlns=”http://www.w3.org/2002/01/P3Pv1″>
<POLICY name=”Browser”
discuri=”http://www.dominio.it/BrowserPolicy.html”
xml:lang=”it”>
<ENTITY>
<DATA-GROUP>
<DATA ref=”#business.name”>Nome Azienda</DATA>
<DATA ref=”#business.contact-info.postal.street”>Via dell’Azienda, 1</DATA>
<DATA ref=”#business.contact-info.postal.city”>Roma</DATA>
<DATA ref=”#business.contact-info.postal.stateprov”>RM</DATA>
<DATA ref=”#business.contact-info.postal.postalcode”>00100</DATA>
<DATA ref=”#business.contact-info.postal.country”>Italia</DATA>
<DATA ref=”#business.contact-info.online.email”>[email protected]</DATA>
<DATA ref=”#business.contact-info.telecom.telephone.intcode”>39</DATA>
<DATA ref=”#business.contact-info.telecom.telephone.loccode”>06</DATA>
<DATA ref=”#business.contact-info.telecom.telephone.number”>123456</DATA>
</DATA-GROUP>
</ENTITY>
<ACCESS><nonident/></ACCESS>
<DISPUTES-GROUP>
<DISPUTES resolution-type=”independent”
service=”http://www.garanteprivacy.it”
short-description=”Garante della Privacy”>
<IMG src=”http://www.garanteprivacy.it/Logo.gif” alt=”Logo Garante della Privacy”/>
<REMEDIES><correct/></REMEDIES>
</DISPUTES>
</DISPUTES-GROUP>
<STATEMENT>
<PURPOSE><admin/><develop/></PURPOSE>
<RECIPIENT><ours/></RECIPIENT>
<RETENTION><stated-purpose/></RETENTION>
<DATA-GROUP>
<DATA ref=”#dynamic.clickstream”/>
<DATA ref=”#dynamic.http”/>
</DATA-GROUP>
</STATEMENT>
</POLICY>
</POLICIES>
Essenzialmente il codice XML espone la politica denominata “Browser”, della quale esiste una versione leggibile dall’utente all’indirizzo specificato tramite l’attributo discuri
.
<ENTITY>
fornisce i dati identificativi di chi gestisce i dati ed è responsabile delle politiche di gestione dei dati.<ACCESS>
si specifica se l’utente può accedere ai propri dati personali. <nonident>
indica che non vengono raccolti dati che identificano l’utente, il quale non ha pertanto necessità di accedervi.<DISPUTES-GROUP>
contiene l’elenco degli organismi che è possibile contattare per risolvere eventuali controversie.<STATEMENT>
descrive la politica di gestione che viene adottata ai dati specificati tramite l’elemento <DATA-GROUP>
.Nel nostro esempio, viene dichiarato che i dati raccolti servono per scopi di amministrazione del server e per lo sviluppo ed il corretto funzionamento del sito (<PURPOSE>
), il destinatario dei dati è lo stesso responsabile dichiarato in precedenza (<RECIPIENT>
), i dati vengono memorizzati per il tempo necessario allo svolgimento dello scopo dichiarato (<RETENTION>
). Infine, i dati acquisiti sono quelli relativi alla gestione dell’interazione dell’utente con il sito e quelli necessari per la gestione del protocollo HTTP.
La politica di gestione dei veri e propri dati personali acquisiti tramite la form di richiesta informazioni è espressa tramite il file /P3P/UserPolicy.xml
. Il seguente è un esempio di dichiarazione P3P, limitatamente all’elemento <STATEMENT>
, di come verranno utilizzati i dati inviati tramite la form:
Listato 3. Esempio di STATEMENT
…
<STATEMENT>
<CONSEQUENCE>
I dati forniti vengono utilizzati per ricontattarvi
</CONSEQUENCE>
<PURPOSE><current/></PURPOSE>
<RECIPIENT><ours/></RECIPIENT>
<RETENTION><stated-purpose/></RETENTION>
<DATA-GROUP>
<DATA ref=”#user.name”/>
<DATA ref=”#user.home-info.postal”/>
<DATA ref=”#user.home-info.online.email”/>
</DATA-GROUP>
</STATEMENT>
…
L’elemento <CONSEQUENCE>
ha lo scopo di fornire spiegazioni leggibili dall’utente sull’uso dei dati.
L’elemento <current>
all’interno di <PURPOSE>
indica che i dati vengono utilizzati al solo scopo di soddisfare la richiesta di informazioni inoltrata.
All’interno dell’elemento <DATA-GROUP> vengono specificati i dati oggetto del trattamento: il nome dell’utente, l’indirizzo postale e l’indirizzo di posta elettronica.
La pubblicazione delle politiche di gestione dei dati consiste semplicemente nel posizionare i file coinvolti nella descrizione P3P all’interno del sito.
Nel nostro esempio, i Policy file vengono messi nella cartella /P3P
, mentre le versioni HTML destinate all’utente vengono pubblicate nella root del sito. Rimane da stabilire dove pubblicare il Policy Reference file in modo che sia automaticamente recuperato dai browser.
Esistono tre possibili modalità di pubblicazione del Policy Reference file. La prima consiste nel nominare il Policy Reference file come p3p.xml
e metterlo nella root del sito.
La seconda modalità consiste nel fornire al browser la posizione del Policy Reference file tramite un opportuno header HTTP, come mostrato nel seguente esempio:
Listato 4. Fornire al browser la posizione del Polici Reference file
HTTP/1.1 200 OK
P3P: policyref="http://www.dominio.it/P3P/PolicyReference.xml"
Content-type: text/html
…
La terza modalità consiste nello specificare la posizione all’interno di ciascuna pagina tramite il tag HTML <link>
, come nel seguente esempio:
Listato 5. Definire la posizione con nel tag <link>
<link rel=”P3Pv1″ href=” http://www.dominio.it/P3P/PolicyReference.xml “>
Indipendentemente dal metodo utilizzato, i browser che supportano il P3P potranno accedere alla descrizione formale delle politiche di gestione dei dati del nostro sito.
Come abbiamo avuto modo di vedere in questo articolo, P3P offre un mezzo interessante per rendere trasparente le politiche di gestione dei dati personali. Tuttavia al momento non sono molti i siti che lo adottano, un po’ per la scarsa conoscenza di questo standard, un po’ per la poca sensibilità verso le problematiche relative alla privacy. A rendere meno evidente il vantaggio dell’uso di P3P ciò si aggiunge il fatto che il supporto da parte dei più comuni browser è limitato alle politiche di gestione dei cookie.
Occorrerebbe tuttavia cominciare a prendere confidenza con questo linguaggio in modo da essere preparati quando il supporto dello standard sarà universale e sarà aumentata la sensibilità verso la gestione della privacy.
W3C, The Platform for Privacy Preferences 1.0 (P3P1.0) Specification, http://www.w3.org/TR/P3P/
W3C, The Platform for Privacy Preferences 1.0 (P3P1.0) Specification (Working Draft), http://www.w3.org/TR/2004/WD-P3P11-20040720/
Se vuoi aggiornamenti su P3P e la gestione della privacy in un sito Web inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
Cos’è Adruino Jun e quali possibilità offre agli sviluppatori Web
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Come creare applicazioni per il Web con PHP e MySQL per il DBMS.
Tutte le principali tecnologie per diventare uno sviluppatore mobile per iOS.
I fondamentali per lo sviluppo di applicazioni multi piattaforma con Java.
Diventare degli esperti in tema di sicurezza delle applicazioni Java.
Usare Raspberry Pi e Arduino per avvicinarsi al mondo dei Maker e dell’IoT.
Le principali guide di HTML.it per diventare un esperto dei database NoSQL.
Ecco come i professionisti creano applicazioni per il Cloud con PHP.
Lo sviluppo professionale di applicazioni in PHP alla portata di tutti.
Come sviluppare applicazioni Web dinamiche con PHP e JavaScript.
Fare gli e-commerce developer con Magento, Prestashop e WooCommerce.
Realizzare applicazioni per il Web utilizzando i framework PHP.
Creare applicazioni PHP e gestire l’ambiente di sviluppo come un pro.
Percorso base per avvicinarsi al web design con un occhio al mobile.
Realizzare siti Web e Web application con WordPress a livello professionale.
I database basati su XML che vengono interrogati tramite XPath possono essere vulnerabili all’XPath injection: proteggersi e sfruttare questa vulnerabilità.
Come implementare i principali standard per la sicurezza degli XML tramite Java e il progetto Apache Santuario.
Con il tempo si è diffusa la richiesta di strumenti per ottimizzare i documenti XML. In questo articolo si presenterà il problema, diversi approcci utili a risolverlo, ed EXI, una soluzione offerta dal W3C. Si introdurranno infine alcune soluzioni usate per ottimizzare l’XML in Java.
XML è un metalinguaggio che permette di definire un innumerevole insieme di linguaggi di markup. Questa guida offre una panoramica sintetica ma completa, e soprattutto molto pratica, relativa ai linguaggi che gravitano intorno all’universo di XML, da XSLT ad XPath: una guida per non perdersi tra le definizioni e le funzioni.