Pas de cookies effrayants

Les cookies sont plus frais, alors quelles sont les dernières recettes pour être sûr de pouvoir encore profiter de la saison des frissons sans les cookies rachetés ?

Les cookies sont plus frais, alors quelles sont les dernières recettes pour être sûr de pouvoir toujours profiter de la saison des frissons sans cookies périmés ?

Nous sommes sur le point de supprimer progressivement les cookies tiers sur la plate-forme Web. Il s'agit d'une étape majeure dans la lutte contre le suivi intersites, mais cela fait partie d'un parcours assez long. Jetons un coup d'œil sur tout ce que nous avons parcouru et sur les friandises qui nous réservent à l'avenir...

À première vue, les cookies fournissent un magasin de clés-valeurs simple qui est envoyé entre le navigateur et le serveur. Cela peut fournir des fonctionnalités utiles sur un site, telles que l'enregistrement d'une préférence: theme=bats ou le stockage de l'ID de session d'un utilisateur connecté.

Un cookie tiers contenant une valeur simple telle que "thème=chauve-souris" ou "fav_cimpkins=us-nyc"

Si ce cookie est utilisé sur le site qui l'a défini, nous l'appelons généralement "cookie propriétaire". S'il est utilisé au sein d'un site différent de celui qui l'a défini, nous appelons cela un cookie tiers. Par exemple, mon cookie theme=bats est propriétaire si je visite le site qui l'a défini, mais s'il est inclus dans un iFrame ou une autre ressource intersite au sein d'un autre site, il s'agit alors d'un cookie tiers.

Le problème avec les cookies tiers est qu'ils permettent d'activer le suivi intersites. Au lieu de définir un thème, par exemple, le service partagé peut y stocker un identifiant entier. Ce même identifiant est ensuite envoyé lorsque vous naviguez sur différents sites incluant un cookie de service partagé, ce qui signifie qu'un service peut observer et associer votre activité sur ces sites.

Cookie tiers associé à un identifiant unique qui permet au site tiers de suivre un utilisateur sur le Web

Cookies propriétaires par défaut

Nous avons déjà fait des progrès ! Auparavant, le simple fait de définir un cookie simple : theme=pumpkins était envoyé dans tous les contextes, sur le même site ou sur l'ensemble du site. La plupart des sites souhaitent uniquement que leurs cookies soient envoyés dans un contexte unique. Cela peut être contrôlé via l'attribut SameSite sur le cookie. Exemple :

Set-Cookie: theme=bats; SameSite=Lax

Cela indique au navigateur de n'envoyer le cookie que si la ressource correspond au site de premier niveau. Cependant, cela signifie que le site doit spécifier quand il voulait le cookie propriétaire. C'est un peu à l'envers en termes de sécurité, car vous devriez demander lorsque vous voulez obtenir plus de droits, pas seulement les obtenir par défaut.

Désormais, SameSite=Lax est la valeur par défaut. Si vous vous contentez de définir theme=bats, l'envoi ne sera envoyé que dans un contexte sur le même site.

La valeur SameSite=Lax par défaut empêche l'envoi d'un cookie dans un contexte tiers.

Si vous souhaitez un cookie intersite ou tiers (vous aurez peut-être besoin que le thème s'affiche dans un widget intégré), vous devez spécifier:

Set-Cookie: theme=bats; SameSite=None; Secure
La valeur explicite SameSite=None indique que le cookie doit être envoyé dans des contextes intersites.

Cela indique au navigateur que vous souhaitez que le cookie soit envoyé dans tout contexte intersite, mais nous voulons nous limiter aux connexions sécurisées.

Des cookies propriétaires encore plus savoureux

Bien que la recette par défaut s'est améliorée, vous avez encore la possibilité d'améliorer cette recette. Voici un aperçu rapide:

Set-Cookie:  __Host-theme=bats;
  Secure;
  Path=/;
  HttpOnly;
  Max-Age=7776000;
  SameSite=Lax;

Vous obtiendrez ainsi un cookie propriétaire qui reste limité à un seul domaine, des connexions sécurisées, aucun accès via JavaScript, qui expire automatiquement avant qu'il ne devienne obsolète et qui n'est, bien sûr, autorisé que dans des contextes sur un même site.

Avec les CHIPS, les cookies sont encore meilleurs !

L'un des aspects magiques du Web est la possibilité de composer plusieurs sites en même temps. Imaginons que je souhaite créer un widget de carte permettant à d'autres sites d'afficher les meilleurs circuits de citrouilles ou d'autres parcours pour faire des bonbons. Mon service utilise un cookie pour permettre aux utilisateurs de stocker leur progression le long du trajet. Le problème est que ce même cookie tiers va être envoyé sur le site du parc de citrouilles que sur le site du site de chasse aux bonbons. Je ne veux pas effectuer le suivi des utilisateurs entre les sites, mais le navigateur n'utilise qu'un seul fichier de cookies. Je n'ai aucun moyen de séparer cette utilisation.

Les cookies intersites avec SameSite=None sont toujours placés dans un répertoire de cookies partagés

C'est là qu'intervient la proposition CHIPS (Cookies Has Independent Partitioned State). Au lieu d'un pot de cookies partagé, il existe un pot de cookies distinct et partitionné pour chaque site de premier niveau. Les sites doivent activer cette option en utilisant l'attribut Partitioned dans leur cookie.

Set-Cookie: __Host-route=123;
  SameSite=None;
  Secure;
  Path=/;
  Partitioned;
L'attribut partitionné du cookie crée des fichiers jar de cookies distincts pour chaque site de premier niveau.

Plutôt que de partager leur bocal à cookies, tout le monde se les réserve ! plus simple, plus sûr et plus hygiénique.

Nous venons d'envoyer l'intent de livraison pour les cookies ayant un état indépendant partitionné (CHIPS) dans Chrome 109. Cela signifie qu'ils seront disponibles en version bêta en décembre, puis prêts pour la version stable en janvier 2023. Si vous cherchez une solution pour l'année prochaine pour améliorer la recette des cookies de votre site, jetez un coup d'œil et voyez si vous pouvez commencer à répandre des CHIPS dans ces cookies intersites.

Inviter les cookies à la session avec les ensembles internes

Concernant les commentaires des développeurs, vous êtes nombreux à avoir fait savoir que, dans certaines situations, vous partagez des services entre des sites que vous contrôlez et que vous voulez pouvoir utiliser des cookies entre eux, mais ne les laissez pas être envoyés dans des contextes tiers réels. Par exemple, vous avez peut-être pretty-pumpkins.com et pretty-pumpkins.co.uk. Vous disposez peut-être d'un système d'authentification unique basé sur les cookies qui fonctionne sur ces sites. CHIPS ne fonctionnerait pas, car il me suffisait de me connecter sur les deux sites. J'ai besoin du même cookie sur ces sites associés.

Pour que cela soit possible, nous travaillons sur la proposition d'ensembles internes. Nous avons suivi une phase d'évaluation et de nombreuses discussions avec la communauté, ce qui nous a permis d'accéder à la dernière version, qui vise à:

  • Donner aux organisations un moyen de définir un groupe de sites qui doivent appartenir aux mêmes parties.
  • Utilisez l'API Storage Access pour demander l'accès aux cookies intersites de cet ensemble propriétaire.
Les ensembles internes permettent le partage d'un répertoire de cookies uniquement entre des sites associés

Ces cookies sont encore sortis du four, mais vous pouvez consulter le guide du développeur sur les ensembles internes lorsque d'autres options sont disponibles à tester. Vous pouvez également passer à la proposition WICG/first-party-sets si vous souhaitez contribuer à la discussion.

Ne laissez pas vos cookies obsolètes !

Notre objectif est de commencer à abandonner progressivement la prise en charge des cookies tiers dans Chrome à partir de mi-2024. Il est temps de vous préparer, mais vous devriez commencer à planifier maintenant.

  1. Recherchez d'éventuels cookies dans votre code avec SameSite=None. Ce sont les cookies qui devront être mis à jour.
  2. Si vous n'avez pas de cookies tiers, assurez-vous que vos cookies de même site utilisent les meilleures recettes de cookies propriétaires.
  3. Si vous utilisez ces cookies dans un contexte intégré entièrement confiné, examinez et testez la proposition CHIPS.
  4. Si vous avez besoin de ces cookies sur plusieurs sites pour former un groupe cohérent, examinez la proposition d'ensembles internes.
  5. Si vous n'êtes couvert par aucune de ces options, vous devrez examiner les autres propositions de Privacy Sandbox dans lesquelles nous développons des API sur mesure pour des cas d'utilisation individuels qui ne reposent pas sur le suivi intersites.

Il ne s'agit que d'un bref aperçu. Nous continuerons à partager des informations et des conseils au fur et à mesure de notre avancement. Si vous avez des questions ou des problèmes, ou si vous souhaitez partager les résultats de votre propre travail, nous vous proposons de nombreux itinéraires pour nous contacter.

Alors n'oubliez pas: les cookies peuvent être délicieux, mais seulement quelques-uns à la fois et n'essayez pas de voler ceux des autres !