EUCookieLaw la configurazione ottimale

Poichè le direttive europee hanno imposto che tutti i siti sotto l’ombrello Europa forniscano un’informativa chiara al navigatore sull’utilizzo dei cookie, essendo tecnicamente insoddisfatto delle soluzione proposte dagli altri ed infine sperando che qualcuno lo facesse al posto mio, qualche giorno fa mi sono dovuto sviluppare prima uno script stand-alone denominato EUCookieLaw poi (a grande richiesta) l’ho reso anche un plugin per WordPress in attesa di approvazione dal team di WordPress.

Credevo che la documentazione rilasciata su GitHub fosse chiara, anche se in inglese, tuttavia le domande che mi sono state poste per il suo utilizzo e la sua configurazione sono state sempre le stesse ed io mi sono dovuto ripetere più volte, nei commenti, nei messaggi privati e ovunque mi fosse domandato, quindi ecco la guida alla completa configurazione di EUCookieLaw.

Configurare in un contesto stand-alone

Gli unici file di cui abbiamo bisogno sono:

  1. EUCookieLaw.js
  2. eucookielaw.css
  3. eucookielaw-header.php

Per installare lo script in un contesto senza CMS o con un CMS proprietario che utilizza PHP come linguaggio di programmazione server side bisogna inserire questo codice in ogni entry principale:

<?php
define('EUCOOKIELAW_DISALLOWED_DOMAINS', '<elenco-siti-che-voglio-bloccare>');
define('EUCOOKIELAW_LOOK_IN_SCRIPTS', true);
require 'eucookielaw-header.php';
?>

Per lo scopo di ogni variabile inclusa nello script di cui sopra, si rimanda alla documentazione sul sito.

A partire dalla versione 1.3 gli spazi eccedenti all’inizio e alla fine di ogni url da ricercare vengono automaticamente rimossi.

Le modalità con cui è possibile scrivere l’elenco dei domini è:

Modo1: url1;url2;url3;…

Modo2
: url1 ; url2 ; url3

Modo3:

url1
url2
url3

A partire dalla versione 1.4 È possibile includere implicitamente tutti i sottodomini di uno specifico URL anteponendo all’URL un punto (es. “.example.com” includerà “sottodominio.example.com” e “sotto.sottodominio.example.com“).

Se il CMS o il sito prevede diverse entry (per chiarirsi i CMS usano tipicamente un .htaccess e dirottano tutte le richieste ad un unico file principale denominato index.php o default.php), allora dovrete ripetere l’operazione per tutti i punti di ingresso al sito.

In ogni pagina HTML, bisogna includere una chiamata al JavaScript, al foglio di stile e configurare l’utilizzo di EUCookieLaw secondo quanto riportato nella documentazione alle sezioni “Client Side” e “Customize the behavior” di GitHub.

Eseguire il debug delle regole di sostituzione

Per eseguire il debug delle sostituzioni includere la definizione che segue prima dell’inclusione del file ‘eucookielaw-header.php‘:

define('EUCOOKIELAW_DEBUG', true);

Installare EUCookieLaw in WordPress

Per installare in WordPress il plugin, utilizzare il canale ufficiale di installazione plugin di WordPress. In alternativa effettuare il download di tutti i file del repository (GitHub consente il download come zip, che piace anche a WordPress) ed eseguire la procedura standard di installazione di un plugin per WordPress. Niente di più, niente di meno.

Nota importante: scaricando lo zip direttamente da GitHub, è possibile che venga ottenuto un file del tipo EUCookieLaw-versione.zip. Prima di installarlo in WordPress è fondamentale rimuovere il nome della versione rinominando l’archivio in EUCookieLaw.zip.

Personalizzare l’aspetto

Per personalizzare l’aspetto di EUCookieLaw su WordPress, bisogna creare la directory /wp-content/plugins/EUCookieLawCustom (una copia della directory pronta all’uso è già disponibile nel plugin). Nella directory bisogna inserire un foglio di stile eucookielaw.css ed intervenire su questo foglio di stile per modificare aspetto e cartteristiche del banner.

A partire dalla versione 1.4 è possibile determinare tramite interfaccia di amministrazione dove collocare il banner: in alto o in basso.
Poichè sono state apportate diverse modifiche alla gestione dei CSS si suggerisce di inserire nel file CSS personalizzato solo le proprie personalizzazioni rispetto alle impostazioni predefinite.

Installare EUCookieLaw in Drupal

Il collega e amico Pietro Cappai ha prodotto una guida passo passo per configurare EUCookieLaw in Drupal 7.

Inoltre poichè esistono alcune differenze tra Drupal 7 e Drupal 6, ho prodotto una piccola guida integrativa per installare EUCookieLaw in Drupal 6.

 

Installare EUCookieLaw in Joomla

A seguito della produzione di un documento da parte del collega Gioacchinio Cipriano, ho prodotto una guida integrando ulteriori dettagli in modo da avere un’installazione di EUCookieLaw completamente funzionante in Joomla!

Installare EUCookieLaw in Coopermine Gallery

È di prossima pubblicazione una guida passo passo per installare EUCookieLaw in Coppermine Gallery. Il tutorial sarà un’ulteriore semplificazione della risposta alla issue indicata nel repository Bug with Coppermine Gallery

Installare EUCookieLaw in ZenCart, Magento, Prestashop e tutti gli altri CMS basati su PHP.

Seguendo le indicazioni descritte in “Configurare in un contesto stand-alone” si dovrebbe ottenere il risultato atteso, in caso doveste riscontrare problemi con un qualsiasi CMS vi prego di inviarmi un messaggio per email in modo da integrare la documentazione con ulteriori dettagli per lo specifico CMS utilizzato.

Bloccare i cookie di terze parti

Cerchiamo di chiarire alcuni concetti, nè con JavaScript nè con PHP è possibile bloccare i cookie generati da altri domini. Perchè? Il concetto rientra nel contesto delle security-policy del browser di turno. Quando un utente si trova sul sito example.com, il browser mette a disposizione di Javascript solo i Cookie che sono prodotti dallo stesso dominio purchè non siano cookie di tipo “http” (ovvero consultabili solo sul server). Quindi se questo sito fa utilizzo dei classici pulsante like di Facebook e del widget di Twitter, sta richiamando degli script remoti (ovvero fuori dal dominio) o include degli iframe con contenuti remoti. Gli script remoti non vengono richiesti quindi dal server example.com bensì dal client che sta navigando su example.com.

Pertanto il problema principale è che l’utente, secondo la normativa, dovrebbe prima autorizzare all’uso dei cookie e poi potrebbe usufruire di determinate funzionalità. Ed è così che è nato EUCookieLaw. Qualcosa che preventivamente blocchi i cookie e poi solo se l’utente approva la policy di conservazione dei cookie allora potrà usufruire dei servizi. Per fare ciò EUCookieLaw deve essere in grado di conoscere quali sono i siti che producono i così detti Cookie di terze parti e sostituire il codice prodotto sul server con una versione leggermente modificata in modo che i domini “profilatori” non siano più presenti fino ad approvazione dell’utente.

Quindi la prima cosa da fare è censire quali servizi esterni il proprio sito interroga tramite i tipici tag: iframe (solitamente per i widget di Facebook e di Twitter), script (per esempio i like button di facebook spesso adottano questa tecnica)  e link (tipicamente CSS appoggiati ad una CDN).

Una volta identificati gli elementi da bloccare indichiamo in quale tag li potremo trovare. Di default EUCookieLaw cercherà questi contenuti in iframe, link e script. Per censirli bisogna riportare i tag specifici nel campo “Ricerca i domini solo in questi tag” separati da un pipe (“|”).

Quindi, se utilizzi WordPress, riportare nel campo “Domini bloccati” l’elenco dei domini bloccati, senza indicare il protocollo (http:// o https://), altrimenti (se si sta usando lo script in modalità standalone) riportare questo elenco in una costante EUCOOKIELAW_DISALLOWED_DOMAINS, prima dell’inclusione del file eucookielaw-header.php ricordandovi che ciascun dominio deve essere separato dal “;” oppure da ritorno a capo (\n).

Dopo aver provato sul campo con il supporto di tanti colleghi che utilizzano il plugin che ho sviluppato EUCookieLaw, ecco quali sono i domini che tipicamente producono cookie e che vanno bloccati preventivamente. In grassetto ci sono le regole che includono le altre non in grassetto:

  • Google
    • .google.com
    • .google.it
    • www.google.com
    • www.google.it
    • apis.google.com
    • html5shim.googlecode.com
  • Google Analytics
    • .google-analytics.com
    • www.google-analytics.com
  • Google Fonts
    • fonts.googleapis.com
  • Google Maps
    • .google.com
    • maps.google.com
    • .googleapis.com
    • maps.googleapis.com
    • www.google.com/maps
    • www.google.it/maps
  • Double Click (Google Advertising)
    • .doubleclick.net
    • stats.g.doubleclick.net
    • doubleclick.net
  • Twitter
    • .twitter.com
    • twitter.com
    • platform.twitter.com
    • www.twitter.com
    • twitterfeed.com
  • Youtube
    • www.youtube-nocookie.com
    • www.youtube.com
  • Vimeo
    • .vimeo.com
    • vimeo.com
    • player.vimeo.com
  • Facebook
    • .facebook.net
    • .facebook.com
    • .facebook.it
    • connect.facebook.net
    • www.facebook.it
    • static.facebook.com
    • www.static.facebook.com
    • static.ak.facebook.com
    • www.facebook.com
  • LinkedIn
    • .linkedin.com
    • platform.linkedin.com
    • www.linkedin.com
  • Pinterest
    • www.pinterest.com
  • Digg
    • widgets.digg.com
  • Instragram
    • instagram.com
    • .cdninstagram.com
    • scontent.cdninstagram.com
    • scontent-a.cdninstagram.com
    • scontent-b.cdninstagram.com
  • Add This
    • .addthis.com
    • www.addthis.com
    • g.addthis.com
    • s7.addthis.com
    • addthis.com
  • Eventbrite
    • eventbrite.it
    • eventbrite.com
  • Altri servizi
    • www.addtoany.com
    • .mixpanel.com
    • api.mixpanel.com
    • mixpanel.com
    • .performgroup.com
    • erformgroup.com
    • static.eplayer.performgroup.com
    • .cloudfront.net/assets/pub/shareaholic.js

L’elenco di cui sopra è in fase di costante aggiornamento, quindi ti suggerisco di consultare quotidianamente questa pagina.

Suggerimento: Non è necessario inserire tutti i domini di cui sopra nella configurazione, ma solo quelli dei servizi che effettivamente sono ospitati dal sito. Si suggerisce inoltre di utilzzare quando possibile le regole generiche.

Cercare solo in specifici tag

Di default EUCookieLaw cercherà solo in specifici tag (iframe, script, link) ma possiamo estendere o ridurre l’ambito della ricerca a specifici tag. Per farlo basta operare sulla costante pubblica EUCOOKIELAW_LOOK_IN_TAGS, se stiamo usando la modalità stand-alone, altrimenti tramite il pannello di configurazione di WordPress nella casella Ricerca i domini solo in questi tag.

A prescindere dalla modalità che si adotta per la configurazione di questa informazione, ricordarsi che l’elenco dei tag deve essere separato da un carattere pipe (|).


Commenti

115 risposte a “EUCookieLaw la configurazione ottimale”

  1. ciao, trovato una soluzione/link per bloccare optimizely.com?? soluzione per sistemare l’hover del bottone accetta che si colora solo a metà? grazie mille

    1. Ciao Mirko, non ho avuto ancora la (s)fortuna di discutere con i cookie di optimizely.com. Se mi riesci a fornire ulteriori dettagli te ne sarei grato.
      Per quanto riguarda invece il bottone che si colora a metà, mi puoi fornire ulteriori dettagli? Con quale browser? Su qualsiasi sito (compreso il mio) che presenta la cookie policy? Non è che c’è qualche regola che va in conflitto con altre regole del tuo CSS?

  2. Ciao Diego,

    Posso farti due domande che poi sono poi richieste di implementazione del tuo funzionale plugin Eucookielaw:

    1) Ora ad ogni visita, finché rifiuti ti compare sempre il banner grigio in alto, teoricamente sarebbe bello dopo che si è fatta la scelta rifiuto/accetto, che il banner non debba comparire più.

    2) il 2′ problema è che dovrebbe essere possibile modificare la propria scelta, accetta o rifiuta. Magari attraverso la possibilità di inserire uno shortcode wordpress da qualche parte.

    Che ne pensi ?

    A presto

    Pasquale

    Uno dei tuoi umili seguaci Blogger disperati per sta palla di Cookie policy

    1. Ciao Pasquale,
      le proposte che hai fatto sono molto interessanti che solo se implementate entrambe possono avere un senso. Ti chiederei di inserire la proposta su GitHub, in modo da tenerne memoria… per me specialmente :)

  3. Avatar massimo
    massimo

    Ciao, è ilprimo plugin funzinante e semplice che trovo..complimenti, ti segnalo che il banner non viene visualizzato bene nei siti che utilizzano bootstrap come framework, perchè utilizzi la classe well che è una classe di bootstap predefinita e ha lo sfondo grigio chiaro utilizzando il testo in bianco il tuo banner lo non si leggono le scritte.

    1. Ciao Massimo, sto facendo dei controlli per migliorare lo stile del banner così da evitare conflitti con i vari framework.

  4. ah scusami. Altra domanda, cosa vuol dire che non blocca i cookie di terze parti (così c’è scritto sui dettagli del plugin)?

    1. Ciao Edoardo, è spiegato dettagliatamente in questa pagina perchè non blocca i cookie di terze parti. Nessun plugin o script al mondo è attualmente in grado di bloccare i cookie di terze parti, a meno che non si sfrutti qualche falla del browser. L’unica cosa che è possibile fare è impedire che il client acceda a determinati indirizzi che producono i cookie profilatori, ma bisogna farlo lato server per evitare che anche una singola richiesta venga effettuata nei confronti di un server esterno.
      Quindi: il plugin non blocca i cookie di terze parti ma rompe i ponti con i servizi esterni (censiti) fino ad autorizzazione dell’utente finale.

  5. Avatar massimo
    massimo

    ciao sarebbe bello che ci fosse anche la possibilità di avere il consenso anche solo con lo scroll…… che dici si può implementare?

  6. Avatar vincenzo
    vincenzo

    Ciao Diego, complimenti per il plugin, appena installato su wp.

    Ho notato che nel tuo banner manca il bottone “leggi di più” con link all’informativa estesa.

    E’ obbligatorio inserirla nel banner o se ne può fare a meno? grazie

    1. Ciao vincenzo, non ho riscontrato questa anomalia nel mio banenr.
      Questo è il testo citato:

      La normativa europea sulla privacy e la protezione dei dati personali, richiede che tu venga informato sull’utilizzo dei cookie che viene fatto su questo sito. In questa pagina troverai l’informativa dettagliata. Finquando non premerai approvi potrai riscontrare dei comportamenti anomali. Tuttavia per bloccare i cookie di terze parti è necessario accedere alle impostazioni del browser e procedere al blocco manuale.

  7. Avatar massimo
    massimo

    Ciao, a chi interessa ho fatto un file di testo con all’interno i domini da bloccare, li ho presi dal testo di questo articolo, in più ho aggiunto quelli che ho trovato sui miei siti e che POTREBBERO installare cookie di terze parti. Ho fatto questo file per il semplice motivo che viene piu comodo fare copia/incolla durante la configurazione del plugin. Il files è condiviso tramite il mio dropbox, ho accorciato il link per averlo piu leggibile.

    http://bit.ly/listaEucookieLaw

    1. Grazie per il lavoro svolto.
      Magari cerca di tenerlo sempre aggiornato con le ulteriori integrazioni che eseguirò quotidianamente.

  8. Ciao Diego, ciao Ragazzi,
    noto che su alcuni siti è possibile non inserire il nome nell’etichetta pulsante di rifiuto e questo viene tolto dal banner. Su alcuni siti, nonostante non metto nulla come etichetta di quel pulsante mi viene inserito cmq il pulsante con la scritta desegree. Come posso toglierlO?

    1. Ciao Mirko,
      per le richieste di supporto ti suggerisco di utilizzare GitHub.
      Comunque, la funzione di “testo” opzionale per il pulsante non sono d’accordo devi utilizzare almeno la versione 1.3.1 del plugin, disponibile attualmente solo sul canale GitHub e non sul repository ufficiale WordPress. Comunque se non hai fretta, ti consiglio di attendere domani il rilascio della versione 1.4 su GitHub e su canale ufficiale WordPress.

  9. Avatar michele
    michele

    Il plugin WP funziona benissimo e blocca in modo semplice ed ottimale… se ci fossero altre 2 opzioni nel plugin sarebbe perfetto! la prima è il poter effettuare il consenso tramite scroll e la seconda impostare la durata del cookie visto che ora è solo di sessione ed appare il banner in ogni sessione! Complimenti per il lavoro svolto :)

    1. Ciao Michele, grazie per i feedback.
      L’opt-in tramite scroll della pagina è previsto a partire dalla versione 1.4 che sarà rilasciata domani
      mentre per la durata del cookie è in programma l’integrazione in uno dei prossimi rilasci.

      Comunque per richiedere nuove features per il plugin e lo script standalone, ti suggerisco di utilizzare il canale ufficiale su GitHub.

  10. Avatar michele
    michele

    ciao ho provato il nuovo plugin 1.4.1 e lo scroll funziona solo che non effettua più il reload della pagina..nè allo scroll e nè al click su accetta o rifiuta..per chi usa adsense il reload della pagina è necessario altrimenti perde tutto!

    1. Ciao Michele,
      grazie per il feedback, è una situazione documentata (guarda le note in fondo alla sezione). Però sto facendo dei test per caricare nuovamente i contenuti disattivati dallo script senza il reload della pagina.

      Ti chiedo di comunicare eventuali anomalie o evoluzioni direttamente su GitHub.