Bonnes pratiques

Cookie de session : définition, exemples et consentement

Sommaire de l'article

Les cookies de session sont les cookies les plus répandus du web, et les moins visibles. On ne les remarque pas, ils disparaissent seuls, et pourtant ce sont eux qui font fonctionner les connexions et les paniers. Cet article donne la définition du cookie de session, explique son fonctionnement, ce qui le distingue d'un cookie persistant, quand il exige un consentement et comment repérer ceux que dépose votre site. Pour la vue d'ensemble (cookies internes et tiers, finalités, cadre légal), commencez par notre guide cookies : définition, types et fonctionnement.

Un cookie de session (on parle aussi de cookie temporaire ou de cookie en mémoire) est un cookie HTTP qui ne vit que le temps d'une session de navigation. Techniquement, ce qui en fait un cookie de session, c'est ce qui lui manque : le serveur l'envoie sans date Expires et sans valeur Max-Age. Le navigateur le garde alors en mémoire et l'efface à la fin de la session.

Voici ce qu'envoie le serveur dans un cas typique :

```

Set-Cookie: PHPSESSID=8f2c1a9e7b; Path=/; Secure; HttpOnly; SameSite=Lax

```

Le même cookie avec Max-Age=2592000 deviendrait un cookie persistant, conservé 30 jours, que vous fermiez le navigateur ou non.

Un cookie de session ne contient en général aucune donnée personnelle en clair. Il porte un identifiant aléatoire (l'identifiant de session) ; les informations elles-mêmes (qui vous êtes, ce que contient votre panier) restent sur le serveur, rattachées à cet identifiant.

Comment fonctionnent les cookies de session ?

  1. Vous ouvrez une page. Le serveur crée une session, génère un identifiant aléatoire et l'envoie dans un en-tête Set-Cookie sans expiration.
  2. Le navigateur stocke le cookie en mémoire pour ce site.
  3. À chaque requête suivante vers le même site, le navigateur renvoie le cookie dans l'en-tête Cookie.
  4. Le serveur lit l'identifiant, retrouve la session correspondante et sait que vous êtes la personne qui s'est connectée ou a ajouté un produit au panier une minute plus tôt.
  5. À la fin de la session, le navigateur oublie le cookie. La session côté serveur expire aussi après une période d'inactivité fixée par le site.

HTTP est un protocole sans état : sans ce mécanisme, chaque chargement de page serait un inconnu pour le serveur. Le cookie de session donne au site une mémoire courte, limitée à la visite.

Quand une session de navigation se termine-t-elle ?

C'est là que la définition rencontre la réalité. MDN, la documentation de référence des développeurs web, rappelle que c'est le navigateur qui décide de la fin de la session, et que beaucoup de navigateurs proposent une restauration de session. Si vous utilisez l'option « Continuer là où je me suis arrêté » de Chrome ou « Ouvrir les fenêtres et onglets précédents » de Firefox, vos cookies de session peuvent survivre à un redémarrage et revenir comme si vous n'aviez jamais fermé le navigateur. Sur mobile, où l'on ferme rarement les applications, une session peut durer des jours. Un cookie de session est donc éphémère en principe, pas toujours en pratique.

Exemples de cookies de session

La plupart des technologies serveur déposent un cookie de session par défaut :

  • PHPSESSID : le cookie de session de PHP. La valeur par défaut de session.cookie_lifetime est 0, c'est-à-dire « jusqu'à la fermeture du navigateur ».
  • JSESSIONID : l'identifiant de session des serveurs Java comme Tomcat.
  • ASP.NET_SessionId : le cookie de session des applications ASP.NET.
  • connect.sid : le nom par défaut utilisé par express-session sous Node.js, qui ne fixe aucune expiration sauf si le développeur en ajoute une.

Usages typiques : garder un utilisateur connecté pendant la visite, conserver le panier avant la commande, transporter les étapes d'un formulaire en plusieurs pages, protéger les formulaires contre la falsification de requêtes intersites (CSRF) et diriger un visiteur vers le même serveur derrière un répartiteur de charge.

Attention aux noms. Un cookie dont le nom contient « session » n'est pas forcément un cookie de session. Google Analytics 4 dépose _ga_<container-id> pour garder l'état de votre session de mesure, mais il dure 2 ans par défaut, comme l'explique notre article sur les cookies _ga, _gid et _gat. Seuls les attributs d'expiration comptent.

Un cookie persistant a une date Expires ou une valeur Max-Age. Il reste sur l'appareil jusqu'à cette date, même après la fermeture du navigateur, sauf si l'utilisateur le supprime. Les différences, point par point :

  • Durée de vie : le cookie de session s'arrête avec la session de navigation ; le cookie persistant dure jusqu'à sa date d'expiration, de quelques minutes à plusieurs années.
  • Stockage : les cookies de session sont gardés en mémoire ; les cookies persistants sont écrits sur le disque.
  • Usages : les cookies de session gèrent connexion, panier et formulaires pendant la visite ; les cookies persistants retiennent les préférences, l'option « rester connecté » et les identifiants de mesure ou de publicité d'une visite à l'autre.
  • Capacité de suivi : un cookie de session peut vous suivre pendant une visite ; un cookie persistant peut vous reconnaître pendant des semaines ou des mois.

Les cookies persistants posent la question de la durée maximale. La CNIL recommande 13 mois au plus pour les cookies soumis à consentement, ce que nous détaillons dans notre article sur la durée de conservation des cookies.

Les cookies de session sont-ils soumis au consentement ?

La règle vient de l'article 5(3) de la directive ePrivacy, transposé en France à l'article 82 de la loi Informatique et Libertés : stocker ou lire une information sur le terminal de l'utilisateur exige son consentement, sauf si c'est strictement nécessaire à la fourniture du service qu'il a expressément demandé (ou a pour seule finalité de permettre une communication). La durée de vie n'est pas un critère. La finalité, si.

Dans son avis 04/2012 sur l'exemption de consentement pour les cookies, le groupe de travail Article 29 (devenu le CEPD) a donné des exemples de cookies exemptés. Plusieurs sont par nature des cookies de session :

  • les cookies de saisie, qui gardent la trace de ce que vous tapez dans un formulaire ou mettez dans un panier, pour la durée de la session ;
  • les cookies d'authentification, qui vous gardent connecté pendant une session ;
  • les cookies de sécurité centrés sur l'utilisateur, par exemple pour détecter des échecs de connexion répétés ;
  • les cookies de session d'équilibrage de charge ;
  • les cookies de session des lecteurs multimédias, qui stockent les données techniques nécessaires à la lecture d'une vidéo ou d'un son.

Le même avis précise qu'un cookie de session utilisé pour une autre finalité, comme le suivi, n'est pas exempté. Les lignes directrices de la CNIL de 2020 vont dans le même sens et citent des exemples comparables de traceurs exemptés : authentification, panier d'achat, personnalisation de l'interface et équilibrage de charge.

En pratique :

  • Un PHPSESSID qui ne sert qu'à garder l'utilisateur connecté : strictement nécessaire, pas de consentement, mais il doit figurer dans votre politique de cookies.
  • Un outil d'analyse ou de publicité qui dépose un cookie de session pour regrouper les pages vues : consentement obligatoire, avant le dépôt.
  • Un widget de chat qui dépose un cookie de session avant que le visiteur ouvre la conversation : à vérifier, car il ne répond encore à aucune demande du visiteur.

Vous ne savez pas ce que votre site dépose au premier chargement ? Vérifiez en 30 secondes quels cookies votre site dépose avec le scanner de cookies gratuit.

Comment voir et supprimer les cookies de session ?

Dans votre navigateur. Ouvrez les outils de développement (F12), puis l'onglet Application dans Chrome ou Edge, ou l'onglet Stockage dans Firefox, et sélectionnez Cookies. Dans la colonne d'expiration, les cookies de session apparaissent avec la mention « Session » au lieu d'une date.

Pour les supprimer. Fermer toutes les fenêtres du navigateur efface les cookies de session, sauf si la restauration de session est activée. Pour en être sûr, supprimez les cookies du site depuis les paramètres du navigateur, ou utilisez une fenêtre de navigation privée, dont les cookies sont effacés à sa fermeture.

Sur votre propre site. Ouvrez une fenêtre privée, chargez la page d'accueil sans toucher au bandeau et listez les cookies. Tous les cookies présents à ce stade, de session ou persistants, doivent être strictement nécessaires. Les autres sont déposés trop tôt.

Sécurité : protéger les cookies de session

Comme le cookie de session prouve souvent qui vous êtes, le voler permet de prendre le contrôle de la session. Les protections courantes :

  • HttpOnly : le cookie n'est pas lisible par JavaScript, ce qui limite le vol par un script injecté.
  • Secure : le cookie n'est envoyé qu'en HTTPS.
  • SameSite=Lax ou Strict : le cookie n'accompagne pas la plupart des requêtes intersites, ce qui réduit le risque de CSRF.
  • Un nouvel identifiant après connexion : l'OWASP recommande de régénérer l'identifiant de session quand les droits changent, pour bloquer la fixation de session.
  • Une expiration côté serveur : la session doit expirer après une inactivité, quoi que fasse le navigateur du cookie.

Les cookies de session dans votre politique de cookies

Le principe de transparence du RGPD et les règles ePrivacy valent pour tous les cookies, exemptés ou non. Votre politique de cookies ou votre déclaration de cookies doit lister chaque cookie de session avec son nom, son émetteur, sa finalité, sa catégorie et une durée indiquée « Session ». Les cookies de session strictement nécessaires vont dans la catégorie décrite dans notre guide des catégories de cookies RGPD, en précisant au visiteur qu'ils ne peuvent pas être refusés parce que le site ne fonctionnerait pas sans eux.

Comment FlowConsent gère les cookies de session

FlowConsent est un exemple de bandeau cookies qui traite les cookies de session selon leur finalité, pas selon leur durée. Son scan automatique détecte les cookies que votre site dépose réellement et reprend le domaine, la durée et le type observés : un cookie de session apparaît donc comme tel. Les cookies des services connus sont classés avec leur catégorie ; vos propres cookies internes, comme une session de panier déposée par votre serveur, s'ajoutent à la main avec leur nom, leur finalité et leur durée. Tous les scripts non essentiels restent bloqués jusqu'au consentement, et chaque choix est conservé comme preuve exportable, hébergée en Europe. FlowConsent est gratuit jusqu'à 25 000 sessions par mois et s'installe en une dizaine de minutes. La documentation sur la déclaration de cookies montre comment la liste est construite.

Questions

Questions fréquentes sur ce sujet.

Une question qui n'est pas dans la liste ? Écrivez-nous, on répond vite.

Quelle différence entre un cookie de session et un cookie persistant ?

Un cookie de session n'a pas de date d'expiration : le navigateur le supprime à la fin de la session de navigation, en général à sa fermeture. Un cookie persistant a un attribut Expires ou Max-Age et reste sur l'appareil jusqu'à cette date, même après un redémarrage. Les cookies de session gèrent connexion et panier pendant la visite ; les persistants retiennent préférences et identifiants de mesure ou de publicité.

Les cookies de session nécessitent-ils un consentement ?

Pas toujours. Selon l'article 5(3) de la directive ePrivacy, c'est la finalité qui compte, pas la durée. Un cookie de session strictement nécessaire à un service demandé par l'utilisateur, comme une connexion, un panier ou l'équilibrage de charge, est exempté. Un cookie de session utilisé pour la mesure d'audience, la publicité ou le suivi exige un consentement avant son dépôt, même s'il disparaît à la fermeture du navigateur.

Quels sont des exemples de cookies de session ?

Les exemples courants sont PHPSESSID (PHP), JSESSIONID (serveurs Java comme Tomcat), ASP.NET_SessionId (ASP.NET) et connect.sid (express-session sous Node.js). Ils portent un identifiant de session aléatoire qui permet au serveur de vous garder connecté, de retenir votre panier ou un formulaire en plusieurs étapes. Un nom contenant « session » ne prouve rien : le cookie _ga_ de GA4 garde l'état de session mais dure 2 ans.

Comment supprimer un cookie de session ?

Fermez toutes les fenêtres du navigateur : les cookies de session sont effacés à la fin de la session de navigation. Si votre navigateur restaure la session précédente au démarrage, comme l'option Continuer là où je me suis arrêté de Chrome, ils peuvent revenir : supprimez alors les cookies du site depuis les paramètres. La navigation privée est le plus simple : tous ses cookies sont effacés à la fermeture.

Les cookies de session sont-ils dangereux ?

Un cookie de session ne contient en général qu'un identifiant aléatoire, pas de données personnelles en clair, et il disparaît vite. Le principal risque est le vol de session : celui qui vole le cookie peut agir en votre nom sur le site. Les sites réduisent ce risque avec les attributs HttpOnly, Secure et SameSite, un nouvel identifiant après connexion et une expiration côté serveur. Se déconnecter sur un appareil partagé met aussi fin à la session.

Mettez votre site en conformité aujourd'hui.

Gratuit jusqu'à 25 000 sessions par mois. Sans carte bancaire, sans engagement.