Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 713 minIntermédiaire

Cookies et traceurs : règles de la CNIL et bandeau

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • dire si un traceur est exempté de consentement ;
  • auditer un bandeau de cookies avec les outils du navigateur ;
  • bloquer les scripts tiers jusqu'au consentement.

3 exercices corrigés

Un cookie est un petit fichier déposé par un site sur le terminal de l'utilisateur, et plus largement un traceur est toute technique qui stocke ou lit une information sur ce terminal. L'article 82 de la loi Informatique et libertés impose de recueillir le consentement préalable de l'utilisateur avant de déposer ou de lire un traceur, sauf s'il est strictement nécessaire au service demandé. Ce chapitre explique quels traceurs sont exemptés, ce qu'un bandeau conforme doit permettre, comment l'implémenter techniquement et ce que coûte une erreur.

Ce qu'on appelle un traceur

Les règles ne visent pas seulement les cookies HTTP. Elles s'appliquent à toute opération d'accès ou d'inscription d'informations dans le terminal de l'utilisateur (ordinateur, téléphone, télévision connectée), quelle que soit la technique :

  • les cookies HTTP, propriétaires (déposés par le site visité) ou tiers (déposés par un autre domaine : régie publicitaire, réseau social) ;
  • le stockage local du navigateur (localStorage, sessionStorage, IndexedDB) ;
  • les pixels invisibles et balises web insérés dans une page ou un courriel ;
  • les identifiants publicitaires des téléphones et les kits de développement (SDK) intégrés aux applications mobiles ;
  • l'empreinte du navigateur (fingerprinting), qui identifie un appareil par ses caractéristiques (polices, résolution, extensions) sans rien stocker, mais en lisant des informations du terminal.

Le texte applicable est la directive ePrivacy (2002/58/CE, modifiée en 2009), transposée en France à l'article 82 de la loi Informatique et libertés. Le consentement exigé est celui du RGPD : libre, spécifique, éclairé, univoque (chapitre 3). La CNIL a précisé les règles dans ses lignes directrices et sa recommandation de septembre 2020, que ses contrôles appliquent depuis le 1er avril 2021.

Les traceurs exemptés de consentement

Le consentement n'est pas exigé pour les traceurs qui ont pour finalité exclusive de permettre la communication électronique, ou qui sont strictement nécessaires au service expressément demandé par l'utilisateur. La CNIL cite :

Traceur exemptéExemple
Mémorisation du choix de l'utilisateur sur les traceursLe cookie qui retient « refus » pour ne pas reposer la question à chaque page
Authentification et sécurité de l'authentificationLe cookie de session du portail locataires ; une protection contre les tentatives de connexion automatisées
Panier d'achat et facturationLe panier d'un site marchand
Personnalisation de l'interface attendue par l'utilisateurLa langue choisie, le mode sombre
Équilibrage de chargeLe cookie qui maintient l'utilisateur sur le même serveur
Limitation de l'accès gratuit à un contenuLe compteur d'articles gratuits d'un journal
Certaines mesures d'audienceVoir ci-dessous

La mesure d'audience peut être exemptée si elle remplit des conditions strictes : elle sert uniquement à mesurer l'audience du site pour le compte exclusif de l'éditeur ; elle produit des statistiques anonymes ; les données ne sont pas recoupées avec d'autres traitements ni transmises à des tiers ; elle ne suit pas la navigation de la personne sur d'autres sites ; la durée de vie des traceurs est limitée à 13 mois environ, sans prolongation automatique à chaque visite ; les informations collectées sont conservées 25 mois au maximum ; l'utilisateur en est informé. Ce n'est pas la marque de l'outil qui décide, mais sa configuration : un outil hébergé par l'éditeur et paramétré selon ces règles peut être exempté, alors qu'un outil dont le fournisseur réutilise les données pour son propre compte ne l'est pas.

Tout le reste exige un consentement : la publicité personnalisée ou non, les boutons et contenus intégrés des réseaux sociaux, les vidéos tierces qui déposent des traceurs, la mesure d'audience non exemptée, l'analyse du parcours (enregistrement des sessions, cartes de chaleur) quand elle ne remplit pas les conditions d'exemption.

Le bandeau : ce qu'il doit permettre

Les règles de la CNIL tiennent en sept points :

  1. Aucun dépôt avant le choix. Les traceurs soumis au consentement ne sont ni déposés ni lus tant que l'utilisateur n'a pas accepté. Poursuivre la navigation, faire défiler la page ou fermer le bandeau ne vaut pas consentement.
  2. Refuser aussi simplement qu'accepter. Un bouton « Tout refuser » au même niveau, de même taille et de même visibilité que « Tout accepter ». Un lien discret « Continuer sans accepter » peut convenir s'il est clairement visible ; un refus caché dans un second écran ne convient pas.
  3. Une information claire sur les finalités (publicité, mesure d'audience, réseaux sociaux), avec la liste des tiers qui déposent des traceurs, accessible depuis le premier niveau.
  4. Un choix par finalité : l'utilisateur peut accepter la mesure d'audience et refuser la publicité. Le bouton « Personnaliser » ouvre ces choix.
  5. Pas de case précochée ni d'interrupteur activé par défaut.
  6. Retirer son consentement à tout moment, aussi facilement : un lien « Gérer les cookies » en pied de page ou une icône toujours accessible.
  7. Conserver la preuve du consentement, et le choix lui-même pendant une durée raisonnable : la CNIL recommande de garder le choix, acceptation comme refus, environ six mois, puis de redemander.

Le mur de traceurs (cookie wall), qui conditionne l'accès au site à l'acceptation, n'est pas interdit par principe depuis une décision du Conseil d'État de 2020, mais la CNIL l'apprécie au cas par cas : il n'est admissible que si l'utilisateur dispose d'une alternative réelle et équitable, par exemple un accès payant à un prix raisonnable sans publicité ciblée. Les interfaces trompeuses (dark patterns) qui poussent à accepter (bouton « Refuser » gris pâle, formulation culpabilisante, refus en cinq clics) rendent le consentement non valable.

L'implémentation technique

Le principe : les scripts tiers ne sont pas chargés tant que le choix n'est pas fait, et seulement pour les finalités acceptées. On les déclare inactifs dans la page, puis on les active après le consentement :

html
<!-- Le navigateur n'exécute pas un script de type text/plain : il attend le consentement. -->
<script type="text/plain" data-finalite="mesure-audience" data-src="https://stats.example.net/tag.js"></script>

<div id="bandeau" role="dialog" aria-labelledby="bandeau-titre" hidden>
  <p id="bandeau-titre">Cèdre Habitat et ses partenaires souhaitent utiliser des traceurs pour mesurer
     l'audience du site et afficher des vidéos. <a href="/cookies">Liste des partenaires et détails</a></p>
  <button type="button" data-choix="refuser">Tout refuser</button>
  <button type="button" data-choix="personnaliser">Personnaliser</button>
  <button type="button" data-choix="accepter">Tout accepter</button>
</div>
javascript
const CLE = 'choix-traceurs';
const SIX_MOIS = 1000 * 60 * 60 * 24 * 182;

function lireChoix() {
  try {
    const choix = JSON.parse(localStorage.getItem(CLE));
    return choix && Date.now() - choix.date < SIX_MOIS ? choix : null; // au-delà : on redemande
  } catch {
    return null;
  }
}

function appliquer(choix) {
  document.querySelectorAll('script[type="text/plain"][data-finalite]').forEach((inactif) => {
    if (choix.finalites.includes(inactif.dataset.finalite)) {
      const actif = document.createElement('script');
      actif.src = inactif.dataset.src;
      inactif.replaceWith(actif);
    }
  });
}

function enregistrer(finalites) {
  const choix = { finalites, date: Date.now(), version: '2026-11' };
  localStorage.setItem(CLE, JSON.stringify(choix)); // stocker le choix est exempté de consentement
  document.getElementById('bandeau').hidden = true;
  appliquer(choix);
}

const choix = lireChoix();
if (choix) appliquer(choix);
else document.getElementById('bandeau').hidden = false;

document.querySelector('[data-choix="refuser"]').addEventListener('click', () => enregistrer([]));
document.querySelector('[data-choix="accepter"]').addEventListener('click', () =>
  enregistrer(['mesure-audience', 'videos']));
// « Personnaliser » ouvre un second écran avec une case décochée par finalité,
// puis appelle enregistrer() avec les seules finalités cochées (écran non détaillé ici).
document.querySelector('[data-choix="personnaliser"]').addEventListener('click', ouvrirPreferences);

Dans un vrai projet, on utilise souvent une plateforme de gestion du consentement (CMP, Consent Management Platform), libre ou commerciale. Elle ne dispense pas de vérifier sa configuration : la CNIL sanctionne l'éditeur du site, pas l'outil.

Vérifier un site se fait en quelques minutes avec les outils de développement du navigateur : vider les données du site, recharger la page sans cliquer sur le bandeau, puis regarder l'onglet Application (cookies, stockage local) et l'onglet Réseau (requêtes vers des domaines tiers). Tout traceur non exempté présent à ce stade est déposé sans consentement. Recommencer après avoir cliqué sur « Tout refuser » : rien ne doit changer.

Les sanctions

Les cookies sont, avec la sécurité, le premier motif de sanction de la CNIL depuis 2020. Après Google et Facebook (150 et 60 millions d'euros en décembre 2021, pour un refus plus compliqué que l'acceptation), la CNIL a sanctionné le 1er septembre 2025 Google (325 millions d'euros, notamment pour des cookies déposés à la création d'un compte) et Shein (150 millions d'euros, pour des cookies publicitaires déposés dès l'arrivée sur le site, avant toute interaction avec le bandeau, et un refus qui ne fonctionnait pas). Elle sanctionne aussi des acteurs plus modestes : éditeurs de presse, sites marchands, émetteurs de cartes de paiement en 2025, pour des montants de quelques centaines de milliers d'euros à 1,5 million.

Exercices

Exercice 1 sur 3 Exempté ou non ? Réussi À revoir

Le site de Cèdre Habitat dépose les traceurs suivants. Lesquels exigent un consentement ?

  1. session_id, qui maintient la connexion au portail locataires.
  2. lang=fr, qui retient la langue choisie.
  3. Le pixel d'un réseau social qui mesure l'efficacité des publicités pour les logements vacants.
  4. Un outil de statistiques hébergé sur le serveur de Cèdre Habitat, adresses IP tronquées, cookies de 13 mois, données conservées 25 mois, sans aucun partage.
  5. Une vidéo de présentation intégrée depuis une plateforme qui dépose ses propres cookies au chargement.
  6. choix-traceurs, qui mémorise le refus de l'utilisateur.
Voir la réponseMasquer la réponse de l'exercice 1
  1. Exempté : authentification.
  2. Exempté : personnalisation de l'interface demandée par l'utilisateur.
  3. Consentement : publicité, traceur tiers.
  4. Exempté s'il respecte toutes les conditions de la CNIL (finalité exclusive de mesure d'audience pour l'éditeur, statistiques anonymes, aucun recoupement ni transfert, durées respectées) et si l'utilisateur en est informé.
  5. Consentement, ou mieux : une vignette qui ne charge la vidéo qu'au clic, avec un message expliquant que la plateforme déposera des traceurs.
  6. Exempté : mémorisation du choix.

Tu avais trouvé ?

Exercice 2 sur 3 Audit d'un bandeau Réussi À revoir

Le site d'une agence immobilière affiche en bas de page : « En poursuivant votre navigation, vous acceptez l'utilisation de cookies pour vous proposer des publicités adaptées. [OK] ». Les outils de développement montrent, avant tout clic, des cookies de trois régies publicitaires et d'un outil de statistiques d'un grand groupe américain. Liste les non-conformités et propose un bandeau conforme.

Voir la réponseMasquer la réponse de l'exercice 2

Non-conformités :

  1. Traceurs déposés avant le consentement (régies publicitaires, statistiques non exemptées).
  2. Poursuite de la navigation présentée comme un consentement : ce n'est pas un acte positif clair.
  3. Aucun moyen de refuser : seul un bouton « OK » existe.
  4. Information insuffisante : ni la liste des tiers, ni toutes les finalités (la mesure d'audience n'est pas mentionnée).
  5. Pas de choix par finalité.
  6. Pas de moyen de retirer son consentement ensuite.

Bandeau conforme : un texte qui annonce les finalités (mesure d'audience, publicité personnalisée) avec un lien vers la liste des partenaires ; trois boutons de même apparence « Tout refuser », « Personnaliser », « Tout accepter » ; aucun traceur non exempté chargé avant le choix ; un lien « Gérer les cookies » permanent en pied de page ; le choix conservé environ six mois et la preuve du consentement enregistrée.

Tu avais trouvé ?

Exercice 3 sur 3 Corriger le code Réussi À revoir

Un développeur a écrit ce code dans l'en-tête de toutes les pages. Qu'est-ce qui ne va pas, et comment le corriger ?

html
<script async src="https://pub.example.com/pixel.js"></script>
<script>
  if (localStorage.getItem('cookies') === 'refuse') {
    document.cookie = 'pub_id=; max-age=0'; // on efface le cookie publicitaire
  }
</script>
Voir la réponseMasquer la réponse de l'exercice 3

Le script publicitaire est chargé à chaque page, avant et même après un refus : il dépose et lit ses traceurs dès son exécution. Effacer ensuite un cookie ne change rien, le dépôt a déjà eu lieu, et le pixel a déjà transmis la visite à la régie. De plus, en l'absence de choix, rien n'empêche le dépôt.

Correction : déclarer le script inactif (type="text/plain" avec un attribut de finalité, comme dans l'exemple du chapitre) et ne l'activer qu'après un consentement explicite à la finalité « publicité », enregistré avec sa date. En cas de refus ou d'absence de choix, le script n'est jamais chargé.

Tu avais trouvé ?

Chapitre terminé !

Fais les 3 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Cybercriminalité : l'article 323-1 et les atteintes aux systèmesRevoir le sommaire du cours