Legge sui Cookie – Soluzione veloce in Javascript

legge cookie

Entro il 2 giugno 2015 tutti i siti italiani dovranno adeguarsi alla nuova legge sui cookie. Senza voler entrare nel dibattito normativo, ecco una soluzione veloce in Javascript per adeguare un sito generico e evitare di rischiare multe. Se vuoi puoi saltare direttamente alla soluzione da implementare.

Che cosa sono questi cookie?

Quando entri dal salumiere, il negoziante ti fa avere un numero in maniera da potersi ricordare, anche nella più totale confusione, chi deve servire prima o dopo.

Un sito web, in modo simile, deve servire pagine web e contenuti, ma per “riconoscere i propri clienti” dà loro una piccola informazione – un numero, una sequenza di caratteri – che viene automaticamente conservata dal browser nel disco rigido. Ognuna di queste informazioni è, appunto, un cookie. Tramite queste un sito di e-commerce, per esempio, è in grado di farci seguire una sequenza di acquisto. Senza questi cookie il sistema che gestisce gli acquisti non sarebbe più in grado di “ricordare” chi abbia comprato cosa.

E allora?

Ci sono cookie neutri fatti per gestire il servizio (come nell’esempio del salumiere), che non creano problemi di privacy. Ci sono invece cookie che vengono usati per tracciare l’utente tra vari siti.

Supponiamo (sempre per rimanere in tema) che dopo il salumiere, con ancora il numero in mano, tu entri in una libreria vicina e ti senti dire “Sei stato dal salumiere? Guarda qui questo libro sull’uso della carne nella dieta!” non è magia, è semplicemente che il libraio ha riconosciuto il colore e la forma del pezzetto di carta che hai ancora in mano. Ora, il libro sull’alimentazione ti può essere utile, oppure il commento può non crearti alcun problema. Qualcuno può ritenere questo suggerimento inopportuno (“se son stato dal salumiere saranno o no fatti miei?”).

Ecco l’esempio di cookie “cattivi”. Hai mai notato che se cerchi su un motore di ricerca o un sito un prodotto, dopo un pò le pubblicità sui vari siti che visiti cominciano senza sosta a riproportelo? Ora finalmente capito cosa tratta questa la legge, si vuole ottenere dall’utente un “consenso informato”.

Ma allora mi riguarda?

In breve, se il tuo sito usa i cookie, ad esempio se usa il popolarissimo Google Analytics, la cosa ti riguarda perché i dati di questo servizio, anche se acquisiti in modo anonimo, possono essere usati da terzi per fini che vanno oltre il servizio da te svolto nel tuo sito. La legge dice in pratica che devi informare l’utente e dargli la possibilità di andarsene dal tuo sito, se non è d’accordo.

Inziamo a fare questo con un popup che informi gli utenti e gli permetta di essere informati (o concludere la visita).

La soluzione

Premessa 1. E’ possibile che il tuo sito non usi cookie e quindi ti puoi evitare questa fatica. Se non sei sicuro/a che il tuo sito usi cookie, vedi il punto precedente.

Premessa 2. La soluzione presentata qui funziona su qualsiasi sito su cui sia possibile modificare la struttura HTML di tutte le pagine. Di conseguenza, se usi un software come WordPress, Joomla o Prestashop per il tuo sito, potrebbe essere ancora più semplice utilizzare un componente specifico che potrebbe costare pochi euro o anche essere reperibile gratuitamente. Se decidi di adottare la soluzione presentata qui su questi CMS, consiglio di far intervenire sulla struttura qualcuno che sa come modificare i temi/layout/template.

Ecco dunque la soluzione, da applicare alla struttura HTML di tutte le pagine (se il tuo sito usa un “modello” o “template” basterà farlo una volta sola). Forse è superfluo ma vale la pena dirlo: questa soluzione viene offerta grauitamente così com’è senza alcuna garanzia. Se non dovesse funzionare sul vostro sito, non si fornisce alcuna assistenza.

1. Inserire in fondo al template, prima della tag , lo script seguente:

<script>
//<![CDATA[ $(document).ready(function() { if (document.cookie.indexOf("privacy_widget") >= 0) {
// Privacy OK
} else {
var cookietopper = document.getElementById("cookietopper");
cookietopper.innerHTML='<div id="privacy_widget" style="display: block; text-align:center; font-size: 0.8em; width:100%; margin: 0; padding: 15px 0; background: #dddddd;">Questo sito utilizza i cookie per migliorare servizi ed esperienza degli utenti. Se decidi di continuare la navigazione consideriamo che accetti il loro uso. Disclaimer: A commission is paid for purchases made through links in this site. <button id="bprivacy_accept" style="vertical-align: middle;padding:5px;min-height:0;line-height:normal;font-size: 0.8em;" onclick="privacy_accept();return false;">Accetto<\/button> <button id="bprivacy_info" style="vertical-align: middle;padding:5px;min-height:0;line-height:normal;font-size: 0.8em;" onclick="privacy_info();return false;">Informativa<\/button><\/div>';
}
});

function privacy_info() {
window.location.href="http://www.iltuosito.it/liberatoria";
}

function privacy_accept() {
document.cookie = 'privacy_widget=1; path=/; expires=Mon, 18 Jan 2038 03:14:00 GMT';
var privacy_widget = document.getElementById('privacy_widget');
privacy_widget.parentNode.removeChild(privacy_widget);
}

//]]>

</script>

 

1a. Personalizzare l’url che punta alla liberatoria, dentro lo script “http://www.iltuosito.it/liberatoria”. Se non hai una pagina di questo tipo, bè devi proprio crearla e scriverci se usi i cookie, cosa ne fai eccetera, come previsto dalla legge).

2. Inserire in cima, subito dopo la tag <body> oppure dentro la prima DIV utile (a scelta)

<div id="cookietopper"></div>

 

3. Se lo script non dovesse funzionare (cioè se non appare nulla) è possibile ci sia un conflitto con il codice jQuery. Prova allora a sostituire la riga

window.addEvent('domready', function() {

 

con la seguente:

$(document).ready(function() {

 

oppure ancora (per i jQuery più vecchi)

jQuery(document).ready(function() {

 

Se il tuo sito usa jQuery, in questo modo dovrebbe funzionare.

Fatto!

Non è stato semplice? Se ti è stato utile, condividi!

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *