--- title: 'Une solution open source pour les Cookies (RGPD) ● tarteaucitron' created_time: '2023-09-23 15:47:07' language: fr subtitle: '' --- # Une solution open source pour les Cookies (RGPD) ● tarteaucitron ![tarteaucitron](%URL%.images/tarteaucitron.png) une présentation par Marc Dechèvre | [Woluweb](https://www.woluweb.be) ![Marc](%URL%.images/marc_dechevre.jpg "100x100")
![woluweb](https://www.woluweb.be/images/woluweb/woluweb_mini.png) slides https://slides.woluweb.be ## Présentation du vendredi 22.01.2021 à 11h **Cookies et autres traceurs - comment mettre mon site en conformité ?** « tarteaucitron » est un outil open source permettant mettre votre site en conformité quel que soit le CMS et quels que soient les cookies utilisés Inscription gratuite pour la session live en visioconférence sur
[Les Mysteres du Web](https://www.les-mysteres-du-web.fr/agenda-des-prochains-evenements/agenda-des-prochaines-rencontres-interactives/cookies-et-autres-traceurs-comment-mettre-mon-site-en-conformite-vendredi-22-janvier-a-11h) ## Les Cookies expliqués en BD https://blog.octo.com/bd-les-cookies par Aryana Peze le 08/01/2021 En quelques cases de BD, on capte l'enjeu des Cookies :
cookies de session, cookies permanents, cookies de tiers, ...
![CookieMonster](https://media.giphy.com/media/HGe4zsOVo7Jvy/source.gif)
Le "Cookie Monster" du Muppet Show. Source : giphy ## Le contexte juridique - RGPD et Cookies Le 25 mai 2018, l’entrée en application du règlement général sur la protection des données (RGPD ou GDPR en anglais) est venue renforcer les exigences en matière de gestion des cookies et autres traceurs. ## Le contexte juridique - France et Belgique Cette directive a été traduite (et/ou interprétée) dans chaque droit national et par chaque autorité : - en France par la **CNIL** - Commission Nationale de l'Informatique et des Libertés - https://www.cnil.fr - en Belgique par l’**APD** - Autorité de Protection des Données en Belgique - https://www.autoriteprotectiondonnees.be - … ## Concentrons-nous sur les Cookies Le RGPD est un sujet vaste. [séquence humour]
*La légende dit que si on enferme 2 juristes spécialistes en RGPD dans un local pendant une journée il en ressort 3 avis.* 😂
Aussi, cette session se concentre exclusivement sur le volet "cookies" : - (depuis) quand mon site doit-il être en conformité ? - quels cookies sont autorisés et quels cookies doivent-ils faire l’objet d’un consentement ? - et surtout : comment mettre en place la gestion des cookies sur mon site ? Il n'en reste pas moins qu'il est souvent difficile d'y voir clair sur le sujet des cookies car typiquement les juristes connaissent la loi mais pas les cookies... et inversement pour les informaticiens... ## Cookies - des sanctions lourdes En l’occurrence, nos deux pays francophones ont tendance à avoir une interprétation stricte de la directive. (et en toute modestie, la Belgique est sans doute encore plus stricte) Et les premières sanctions qui sont déjà tombées sont très très lourdes financièrement ! ## Actualité chaude en France - sanctions Le 10/12/2020
[la CNIL annonce sa première sanction en matière de cookies](https://www.cnil.fr/fr/cookies-sanction-de-60-millions-deuros-lencontre-de-google-llc-et-de-40-millions-deuros-lencontre-de) *"Le 7 décembre 2020, la formation restreinte de la CNIL a sanctionné les sociétés GOOGLE LLC et GOOGLE IRELAND LIMITED d'un montant total de 100 millions d'euros d'amende, notamment pour avoir déposé des cookies publicitaires sur les ordinateurs d'utilisateurs du moteur de recherche google.fr sans consentement préalable ni information satisfaisante."* ## Actualité chaude en France - fin mars "[Le saviez-vous ?] La @CNIL a modifié le RGPD pour limiter les abus relatifs au consentement : pour être conforme, les sites ont jusqu'à fin mars 2021 pour proposer trois boutons de même format (Tout accepter, Tout refuser, Configurer)" Source: https://twitter.com/fredcavazza/status/1349670297625047047 ## Interprétation et sanctions en Belgique Le 06.02.2020, nous nous sommes rendus à une [conférence](http://www.focus-gdpr.be/) où l'Autorité de Protection des Données présentait elle-même le thème *"Bien appliquer le RGPD en e-marketing - Les erreurs à ne pas commettre pour les cookies, les e-newsletters, l’e-marketing, le contenu de la charte vie privée,…"* Le slide suivant présenté lors d'un des ateliers résume parfaitement la position de l'APD en matière de Cookies :
--- ![APD](%URL%.images/cookies.png)
--- C’était un véritable coup de tonnerre dans le monde du web car, de l’aveu même de l’APD, 99,9% des sites belges ne rencontraient pas ces critères au moment de la conférence (sic). Bref, le "classique" **OK | En savoir plus** était désormais clairement et officiellement considéré comme non conforme. Il est d’autant plus important de s’y conformer que le risque juridique, qui jusqu’ici semblait assez théorique, est devenu très concret. En effet la première sanction est tombée fin 2019 : €15.000 pour non-respect. Ironie du sort, il s’agit d’un site… juridique. Plus d’infos à ce sujet p.ex. [dans cet article de l’Echo](https://www.lecho.be/entreprises/tic/un-site-belge-sanctionne-pour-sa-politique-de-cookies-une-premiere/10194823.html). ## Actualité chaude en Belgique - interprétation Le 8/1/2021, la FeWeb (Fédération des Métiers du Web - Belgique) [Communique](https://www.facebook.com/lafeweb/posts/10158270188358731) 😱GDPR : la Belgique est désavantagée par rapport à ses voisins européens.
Chez nous, les propriétaires de site sont obligés de demander un consentement explicite à l'utilisateur pour les cookies analytiques et statistiques.
👎 Résultat : en moyenne, 70% de données en moins peuvent être récoltées sur les sites 🇧🇪 alors que l'impact de ce cookie sur la privacy des utilisateurs est faible.
Cela cause un dommage significatif aux entreprises belges face aux pays voisins (🇳🇱 🇫🇷) où ce type de consentement n'est pas requis.
En conséquence, la FeWeb demande la suppression ❎ de cet opt-in, en concertation avec le cabinet du ministre de l'Agenda du Numérique Mathieu MICHEL.
[Communiqué officiel du 08.01.2021](https://www.feweb.be/fr/actualit%C3%A9s/article/2021/01/08/FeWeb-pr%C3%A9conise-la-suppression-de-lopt-in-pour-des-cookies-analytiques-et-statistiques) [Article dans l'Echo le 12.01.2021](https://www.lecho.be/entreprises/technologie/les-sites-belges-sevres-de-donnees-a-cause-d-une-interpretation-du-rgpd/10276508) A suivre donc... ## Plein de services payants pour gérer les Cookies Il existe une pléthore de services payants pour gérer les Cookies mais **le coût est en général important**, surtout s’il est récurrent. Quelques exemples que j'ai croisés : - https://www.onetrustpro.com/buy : €45 / mois / domaine - https://www.axeptio.eu/fr/tarifs : jusqu'à €99 / mois / domaine - https://www.cookiebot.com/fr/pricing : jusqu'à €37 / mois / domaine Et attention : certains services payants ne permettent même pas forcément de respecter la réglementation Cookies à la lettre. ## Les avantages de tarteaucitron La solution **tarteaucitron** présente de multiples avantages : - elle est compatible avec tous les sites, **quel que soit votre CMS**
(Content Management System, Système de Gestion de Contenu) - elle est **facile** à mettre en place - elle est directement configurable sur un même site dans plusieurs langues (cfr sites multilingues). Déjà **23 langues** - elle permet de configurer directement **plus de 100 services** (Google Analytics, Facebook Pixel, …) ---   - elle est **open source** et donc - transparente - gratuite - personnalisable - elle bénéficie du support de toute une communauté - une fois mise en place, vous ne devenez pas captif ou dépendant d'un site tiers, d'une carte de crédit qui expire, ... ---   - elle rencontre les interprétations les plus **strictes** de la réglementation cookies - possibilité d’obliger à faire un choix avant de pouvoir surfer sur le site - même facilité qu’il s’agisse de refuser, d’accepter ou de personnaliser les cookies - granularité fine : possibilité d’accepter/refuser individuellement chaque cookie dit « non essentiel » ---   - elle est utilisée notamment par le site… de la **CNIL** elle-même - et, cerise sur le gâteau, c'est du **made in France** 🙂 Sans chauvinisme aucun puisque je suis belge 😇
Mais cela explique aussi sans doute pourquoi elle colle mieux à nos réalités juridiques qu'un outil anglo-saxon p.ex.
## Version gratuite / payante / plugin ### Une version gratuite complète La version gratuite est complète : - 117 services (en date du 14.04.2021, mais le nombre évolue constamment) - Respect de la loi sur les cookies On peut bien sûr aussi modifier les textes et le css, mais en éditant directement les fichiers concernés. ### Une version payante A noter qu'il existe aussi une version payante (actuellement €15 / mois pour un nombre illimité de sites et services). Outre ce qui précède, ceci s'ajoute - Toujours à jour - Installation simple et rapide - Modification des textes (via une interface) - Modification des couleurs (via une interface) - Statistiques ### Plugin Comme on va le voir ci-après, l'installation "à la main" est très facile. Mais pour les amateurs d'intégration directe, sachez - qu'un Plugin **WordPress** existe déjà - et qu'il est très probable qu'un Plugin **Joomla :fa-joomla:** sorte prochainement (chuuut, c'est encore un secret 🙂) ## tarteaucitron en quelques captures d'écran ### Popup lors de l'arrivée sur le site, position 'middle' Pratique lorsqu'on veut forcer le choix avant de permettre le surf ![tarteaucitron_middle](%URL%.images/tarteaucitron_middle.png) ### Popup lors de l'arrivée sur le site, position 'bottom' Pratique lorsqu'on veut permettre le surf sans forcer un choix préalable ![tarteaucitron_bottom](%URL%.images/tarteaucitron_bottom.png) ### Accessible à tout moment en position fixe - showAlertSmall Possibilité d'afficher en permanence ceci, avec ou sans le nombre
(très transparent et inspire confiance) ![tarteaucitron_showalertsmall](%URL%.images/tarteaucitron_showalertsmall.png) ### Clic sur le showAlertSmall permet de changer les choix ![tarteaucitron_popup](%URL%.images/tarteaucitron_popup.png) ### Clic sur le nombre de cookies permet de voir et supprimer - cookieslist A nouveau, très transparent et pratique pour les visiteurs ![tarteaucitron_cookieslist](%URL%.images/tarteaucitron_cookieslist.png) ### Nouvelle icône position fixe - showIcon En plus ou à la place du showAlertSmall, possibilité d'ajouter une simple icône qui permet d'afficher le popup de configuration
(plus discret que le showAlertSmall) ![tarteaucitron_new_icon](%URL%.images/tarteaucitron_new_icon.png) ## Exemple concret de rendu ### Le site du Jour le Plus Court - https://www.lejourlepluscourt.be - un festival de court métrage (un "mini-netflix") - avec différents cookies - Google Analytics (statistiques) - Facebook Pixel (régie publicitaire) - AddThis (partage réseaux sociaux) ### Options choisies Concrètement : - au choix, une barre ou un popup permettant de faire ses choix + lien politique de confidentialité - aussi facile de tout accepter que de tout refuser ou de personnaliser - une fois le choix effectué, on a accès à tout moment à sa configuration dans le coin inférieur de l'écran ### showAlertSmall - affichage du nombre de cookies en temps réel (totale transparence) - en cliquant sur ce nombre, on peut visualiser le nom et le contenu de chacun d'entre eux... et même le supprimer (pratique aussi pour les tests) - possibilité de réafficher la Gestion des Cookies - dans le popup, pour chaque groupe de cookies, liens automatiques vers "en savoir plus" et "voir le site officiel" ## Passons à la pratique Le but de la présentation est de montrer très concrètement comment implémenter cette solution sur un site. ### Installation Voir https://tarteaucitron.io/fr Télécharger p.ex. depuis Github : https://github.com/AmauriC/tarteaucitron.js/releases Décompresser le fichier et le mettre à la racine du site, dans un dossier nommé p.ex. **tarteaucitron** (veiller simplement à être cohérent avec la 1e ligne du script suivant). NB : pour les codes, repartez de préférences toujours du site officiel pour avoir la toute dernière version des codes. En effet, en préparant cette session par exemple, j'ai réalisé qu'une nouvelle version était sortie, avec de nouveaux paramètres dans le script 🙂 ### Configuration #### Configuration - partie 1 Après la balise **<head>**, ajouter ce qui suit (code correspondant à la version v1.8.3) ---   ```js ``` #### Configuration - partie 2 Jusque là, rien ne se passe encore si on affiche le front-end du site. En effet, tarteaucitron ne va s'afficher que lorsqu'on aura ajouté au moins 1 service (parmi la bonne centaine déjà disponible). On va alors chercher les services dont on a besoin pour obtenir le bout de code à ajouter : https://tarteaucitron.io/fr/install On les ajoute juste avant la balise **</body>** Et bien sûr, si ces services étaient déjà intégrés précédemment au site (via le template/thème, via une extension/un plugin, ...) il faut les désactiver ! Exemples ci-après. --- Google Analytics ```js ``` Google Tags Manager ```js ``` Facebook Pixel ```js ``` ### Astuces #### Astuces - partie 1 Attention à la contante **privacyUrl** : il faut indiquer l'URL absolue. Cela permet en fait de ne pas afficher en popup la fenêtre d'acceptation des cookies... sur la page Privacy Policy Concernant la constante **cookieName**, personnellement je change parfois la valeur par défaut ("tarteaucitron" par "mycookies" p.ex., ce qui est plus clair pour un visiteur curieux de vérifier les cookies) La constante **readmoreLink** donne l'URL des liens "En savoir plus", qui pourrait être différent de l'URL "Privacy Policy". Ici l'URL relative suffit Pour changer les chaînes de langues, éditer **/lang/tarteaucitron.fr.js** pour le français (23 langues disponibles !) #### Astuces - partie 2 La ligne suivante, que j'ai ajoutée au code original, permet de forcer la langue. Très pratique pour un site multilingue où l'interface de tarteaucitron sera toujours dans la langue du visiteur ! ```js var tarteaucitronForceLanguage = 'fr'; ``` #### Astuces - partie 3 Pour faire apparaître l'interface à partir d'un lien n'importe où sur le site (un élément de menu par exemple) : ```html Gestion des cookies ``` Encore plus simple : la constante **hashtag** permet justement d'avoir un simple lien sans javascript.
Autrement dit, si mon hashtag est défini comme suit ```js "hashtag": "#mycookies", /* Open the panel with this hashtag */ ``` Alors le lien suivant permet d'ouvrir directement l'interface ```html Gestion des cookies ``` #### Astuces - partie 4 Il est possible de modifier le CSS par défaut de tarteaucitron directement dans les fichiers originaux, mais pour ne pas perdre ses personnalisations lors des màj il peut être intéressant d'utiliser le fichier de CSS personnalisé de son template. Il faut du coup bien souvent ajouter **!important** pour que notre règle ait priorité. Exemple : ```css .exemple, #tarteaucitron #tarteaucitronServices .tarteaucitronMainLine, #tarteaucitron #tarteaucitronServices .tarteaucitronMainLine:hover { background: rgb(0, 113, 188) !important; } ``` NB : fin 2020, un nouveau paramètre a été ajouté : **useExternalCss** #### Astuces - partie 5 - YouTube Beaucoup de services sont simples à ajouter car il suffit d'ajouter le script tarteaucitron au niveau du site. Mais pour des vidéos YouTube par exemple, c'est plus compliqué car c'est au niveau de chaque vidéo qu'il faut adapter le code "embed" : https://tarteaucitron.io/fr/service/youtube/ Il y a différentes solutions à cela ##### YouTube - solution 1 - Joomla avec template framework Astroid Si pour une raison ou pour une autre on souhaite conserver les cookies de YouTube et qu'on utilise le template Joomla Astroid avec "les articles de type vidéo YouTube", voici une solution. En fait, l'utilisateur introduit sur l'onglet "Article Type Options" uniquement l'ID de la vidéo, mais c'est dans le fichier suivant que cette ID est transformé en iframe : /libraries/astroid/framework/library/astroid/Helper/Video.php Le problème est qu'il s'agit d'un fichier dans le dossier /libraries/ et qu'il ne peut donc pas être overridé. Qu'à cela ne tienne, on peut utiliser ReReplace Pro avec l'option "Regular Expression" afin de pouvoir injecter le code YouTube pour tarteaucitron expliqué sur https://tarteaucitron.io/fr/service/youtube/
Concrètement, il faut remplacer le code généré par Astroid, càd ```html ``` par le code tarteaucitron ```html
``` A noter : si les cookies YouTube n'ont pas encore été acceptés par le visiteur, au lieu de le lecteur vidéo le visiteur voit alors un bandeau l'invitant à accepter les cookies YouTube. Reste un souci avec le template Astroid : ce bandeau n'est pas visible à cause du css qui force la vidéo au format 16/9. Il suffit donc de désactiver le padding-top dans le css : ```css .embed-responsive-16by9::before { /* padding-top: 56.25%; */ padding-top: initial; } ``` ##### YouTube - solution 2 - plugin Joomla gratuit UP de Lomart Si vos vidéos YouTube sont directement insérées dans vos articles (et pas via une fonctionnalité ad hoc du template), sur Joomla je vous invite à utiliser le plugin UP (Universal Plugin) de Loïc Martin aka Lomart, qui depuis la version 2.4 sortie en avril 2021 permet de gérer les cookies tarteaucitron notamment pour YouTube, Vimeo et Google Maps : https://up.lomart.fr/docs/webmaster/tarteaucitron-prise-en-charge ##### YouTube - solution 3 - fausse solution Plutôt que de devoir gérer les cookies, on fait simplement en sorte que YouTube ne dépose plus de cookies :) Ca a l'air sympa, mais la loi "cookies" porte en fait sur les "cookies et autres traceurs". Or, pour autant que je sache, avec la solution ci-après YouTube ne dépose plus de cookies mais dépose un traceur. **Bref, pour autant que je sache, fausse solution...** Comme indiqué sur https://support.google.com/youtube/answer/171780?hl=fr#zippy=%2Cactiver-le-mode-de-confidentialit%C3%A9-avanc%C3%A9 il suffit de remplacer dans le code "embed" www.youtube.com par www.youtube-nocookie.com Avant ```html ``` Après ```html ``` Pour adapter tout un site, on pourrait bien sûr lancer une requête sur la base de données du site pour adapter tous les articles et modules. Mais cela peut poser deux problèmes: - d'une part un utilisateur risque encore d'injecter une nouvelle vidéo *avec cookies* - d'autre part avec certains templates (comme Astroid de JoomDev ou Helix de JoomShaper par exemple), l'utilisateur doit seulement mettre l'ID de la vidéo dans l'interface et c'est le template lui-même qui injecte le code embed. Bref, à l'aide d'une extension telle que ReReplacer de Regular Labs, on peut remplacer à la volée ```html