Flux RSS - La vie du site - Nouveautés et mises à jour
Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

ETag (Entity Tag) est un champ des entêtes HTTP

ETag (Entity Tag) est un champ des entêtes HTTP. Ce champ est manipulé côté serveur. Il n'y a rien à faire côté client (côté poste de travail de l'utilisateur et son navigateur Internet).

01.04.2012 - Révision 21.08.2020 - Révision mineure 13.05.2022. Auteur : Pierre Pinard.

Devant l'augmentation rapide, effrayante au sens des sociétés pratiquant le tracking, du nombre d'internautes se souciant de leur vie privée, certains sites ont trouvé une parade : le champ ETag des entêtes HTTP.

Le champ ETag peut être utilisé pour suivre les utilisateurs en les identifiant de manière unique (au même titre que les Guid).

Les ETag sont des identificateurs uniques générés par le serveur d'un domaine et changés chaque fois que la ressource (le contenu de l'URL consultée dans le domaine) change.

ETag, un truc relativement obscur aux fonctions potentielles multiples, est utilisé, entre autres, pour gérer la mise en cache (accélération par le principe d'anticipation), côté navigateur de l'internaute, des ressources (des URLs d'un domaine).

ETag exprime, dans l'entête HTTP qui accompagne chaque ressource envoyée par un serveur :

  1. un identifiant unique de la ressource (ce n'est pas un hashcode)

  2. si la ressource peut être mise en cache

  3. quelle est sa durée de validité

L'identifiant unique de la ressource (du fichier sur le serveur) change dès que le fichier est modifié (mis à jour).

Si la ressource est à nouveau sollicitée (elle se trouve donc dans le cache du navigateur), une requête très brève est envoyée au serveur en lui donnant l'URL de la ressource et en lui disant, dans le champs ETag " j'ai cette version là dans mon cache (voici son identifiant) ".

Le serveur répond :

  • soit en envoyant la ressource, en remplacement de la version obsolette dans le cache du navigateur.

  • soit en disant " Prends celle dans ton cache, c'est la même que la mienne et ça fait gagner du temps à tout le monde ".

C'est le site visité (le webmaster) qui paramètre cela sur son serveur, dans des scripts côté serveur et dans un fichier nommé .htaccess. Par exemple, les ressources telles que les images peuvent être relativement stables et être mises en cache pour une durée relativement longue. Par contre, le contenu textuel des pages de type "news" peut varier rapidement et il est préférable de ne pas le conserver en cache ou de ne l'y conserver que quelques heures, pas plus, après quoi il faut allez chercher une page plus " fraîche ".

En Juillet 2011, Ashkan Soltani et une équipe de chercheurs de l'Université de Berkeley, ont rapporté qu'un certain nombre de sites, y compris Hulu.com, utilisaient le champ ETag à des fins de suivi des internautes identifiés de manière unique.

Hulu est une gigantesque plate-forme de streaming audio et vidéo agissant de manière autonome, sans dépendre de tiers pour ses ressources média. Ce site est classé 264ème site le plus visité au monde en avril 2013, selon Alexa. Son site est bourré de publicités délivrées par la régie publicitaire KISSmetrics. Hulu est donc un client de KISSmetrics. L'un comme l'autre ont besoin de traquer et profiler les internautes pour délivrer des publicités ciblées. L'un comme l'autre étant filtrés dans les outils de protection de la vie privée, KISSmetrics a déployé et exploité un système de tracking hors de portée des internautes. Or des législations se sont mis en place, protégeant l'internaute et lui donnant, de droit, la possibilité d'échapper (Opt Out) au tracking.

Hulu et KISSmetrics ont tous deux cessé ce " déploiement " le 29 Juillet 2011, au moment où KISSmetrics et plus de 20 de ses clients sont confrontés à une poursuite en recours collectif sur l'utilisation des cookies de suivi " ineffaçables " impliquant, partiellement, l'utilisation des ETags.

Les ETags sont mis en cache par le navigateur, côté utilisateur, avec les ressources mises en cache. Les ETags sont retournés aux serveurs, lors des requêtes ultérieures pour la même ressource. Un serveur de tracking peut tout simplement répéter tout ETag obtenu à partir d'un navigateur afin de s'assurer qu'un ETag attribué à un internaute persiste indéfiniment (d'une manière similaire aux cookies persistants - Evercookie, Flash Cookies, etc.).

Les ETags peuvent être effacés en vidant le cache du navigateur utilisé et en empêchant les mises en cache ultérieures, dans les paramètres du navigateur (mais les implémentations de la gestion du cache varient d'un navigateur à l'autre et l'implémentation de la gestion du cache n'est pas visible, sauf dans Firefox, dont le code est Open Source).

http://forum.xxxxxxxx
GET /applications/dashboard/design/images/star_sprite.png HTTP/1.1
Host: forum.xxxxxxxx
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://xxxxxxxx
Cookie:xxxxxxxx
Connection: keep-alive
If-Modified-Since: Fri, 07 Oct 2011 19:00:10 GMT
If-None-Match: "4e8f4c3a-5cc"
HTTP/1.1 304 Not Modified
Server: nginx
Date: Sun, 26 May 2013 02:06:44 GMT
Last-Modified: Fri, 07 Oct 2011 19:00:10 GMT
Etag: "4e8f4c3a-5cc"
Expires: Sun, 26 May 2013 02:08:44 GMT
Cache-Control: max-age=120

# # # # # # # # # # # # # # # # # # # # # # # # # # # # #

Dans les navigateurs, empêcher la mise en cache (taille du cache à zéro ou désactivation du cache).

Utiliser le module additionnel SecretAgent (Firefox uniquement) qui permet de générer des eTags forgés (contenus fictifs/bidons).

ETag - Mesures curatives

Dossier (collection) : Caches, caches DNS, anticipation et accélération

Notions et principes
Principes d'anticipation
Notion de cache et principe d'accélération
Antémémoire
Antémémoire (« Cache memory »)
Mémoire cache
Mémoire prédictive
Mémoire d'anticipation
Schéma de principe - résolution noms de domaine
ETag (Entity Tag - HTTP ETag - balise-entité ETag HTTP)

Ce ne sont pas des caches
Les « caches disques » ne sont pas des « caches »
Disque dur - Gestion des « caches d'écriture différée »
La mémoire virtuelle (fichier PageFile.sys) de Windows n'est pas un cache

Les caches DNS des systèmes d'exploitation
Cache DNS - Qu'est-ce que c'est
TTL - Durée de vie des données mises en cache DNS

Comment voir le contenu du cache DNS de Windows - invite de commande
Comment voir le contenu du cache DNS de Windows - Application graphique gratuite DNSDataView

Comment vider le cache DNS de Windows
Comment vider le cache DNS de Linux
Comment vider le cache DNS de MAC OS X

Les caches DNS des navigateurs Web
Comment vider le cache DNS de Firefox
Comment vider le cache DNS de Google Chrome

Les caches des navigateurs Web
Cache des navigateurs Web (ajustement et vider)
Vider le cache d'Internet Explorer 7
Vider le cache d'Internet Explorer 8
Vider le cache d'Internet Explorer 9
Vider le cache d'Internet Explorer 10
Vider le cache d'Internet Explorer 11
Vider le cache de Firefox
Vider le cache d'Opera 11
Vider le cache d'Opera 12
Vider le cache d'Opera 15
Vider le cache de Google Chrome
Vider le cache de Safari pour Windows

Accélérateur de Windows : le Prefetch - ne jamais y toucher
Prefetch (mécanisme accélérateur dans Windows)
Prefetcher
Prefetching
Windows Prefetching
Prefetch et Windows
Application Prefetching
Paging memory system
Hard page fault intensive scenarios

Cas d'usages du nettoyage des caches
Accélérer Windows et le PC
Procéder à une décontamination


10.05.1999 - W3C - Detecting the Lost Update Problem Using Unreserved Checkout