des cookies indigérables ... ou presque

Publié le 01 octobre 2010 par Orangebusinessservices

Chers navigateurs web, aujourd'hui le chef vous propose une nouvelle recette pour le dessert: les EverCookies.

Une recette de cookies aussi délicieux que les traditionnels mais plus riches en calories, donc plus difficile à digérer !
Les ingrédients
Inutile de courir tous les marchés de la région pour vos ingrédients, vous trouverez comme pour toutes nos recettes tout ce qu'il vous faut sur Internet. Rendez-vous immédiatement sur le site dédié à EverCookie.
Les ustensiles
Côté matériel, il vous est simplement demandé d'héberger quelques fichiers au sein de votre arborescence web : 1 fichier Javascript, 2 fichiers PHP et 1 fichier objet Flash. Cet au travers de l'API Javascript que vous pourrez utiliser l'ensemble de ces ressources fournies par EverCookie.


Préparation 1 : les cookies HTTP
Du standard, rien que du standard, sont utilisés ici les entêtes HTTP et le mécanisme de cookies bien connus de tous les développeurs web.
Préparation 2 : les cookies LSO
Répertoriés sous le nom de "Local Shared Object", ils sont plus connus sous le terme de "Cookies Flash". Ils sont gérés par des objets Flash et sont stockés sous forme de fichiers de données sur le disque dur de l'utilisateur.
Préparation 3 : les cookies PNG
C'est l'une des spécificités de EverCookie, les informations sont codées au format RGB (Red Green Blue) et intégrées dans un fichier au format PNG (Portable Network Graphics). Les données sont ensuite relues via l'utilisation des éléments "Canvas" du HTML 5.
Préparation 4 : les cookies ETAG
L'entête HTTP ETag - pour entity tag - est utilisé dans les communications entre clients et serveurs web pour optimiser la gestion des données en cache. A chaque demande d'URL, un serveur peut répondre avec un ETAG  spécifique. Lorsque le client souhaite redemander la même URL il renvoi l'ETAG reçu précédemment et le serveur vérifie en fonction si il y a lieu de renvoyé des données mises à jour ou une simple réponse du type "304 Non non rien n'a changé".
Préparation 5 : les cookies IE user Data
Même si cette fonctionnalité est peu connue, elle est présente depuis Internet Explorer 5. Savant mélange de XML et DHTML, le mécanisme "userData" permet au travers du navigateur de Microsoft de stocker des informations de manière persistante (jusqu'à 64K par page web). Une version améliorée des cookies standard en quelque sorte.
Préparation 6 : les cookies HTML5
Dans le souhait d'alléger l'article, il apparaît très difficile d'aborder de manière concrète et complète les éléments apparentés ici aux "Cookies HTML5". Sachez que sont regroupés sous ce terme les attributs HTML 5 suivants : sessionStorage, localStorage, globalStorage et l'API de stockage de données "Web SQL Database".
Préparation 7 : les cookies Historique
Exploitant la faille qui consiste à déteminer au travers des balises CSS quels sites ont été visités, EverCookie utilise son propre jeu d'URL pour stocker ses données. Pour plus de détails, j'invite le lecteur à analyser le bloc de code de l'API Javascript intitulé "css history knocker".
A table !
Fort de toutes ces bonnes préparations réalisés dans sa cuisine, notre développeur web n'a plus qu'à servir les cookies bien chauds à ses invités. Il peut alors retourner tranquillement en cuisine et lorsqu'il reviendra, il sera en mesure de déterminer qui a mangé quoi et en quelle quantité.
Bonne digestion...
Si le lecteur reste un peu sur sa faim à ce stade de la lecture, sachez que le navigateur web lui, a déjà la digestion difficile. En effet, l'utilisation conjointe de ses différents "cookies" laisse peu d'alternative au navigateur web, tout du moins lorsque sa configuration reste standard et non ultra-sécurisée.
Néanmoins, à titre d'information, voici un test réalisé avec un navigateur Chrome sous Windows XP en mode "incognito" (navigation privée)
C:\Program Files\Google\Chrome\Application\> chrome.exe --incognito
Sur la page Evercookie, nous cliquons sur le bouton "Click to create an evercookie"

Nous allons ensuite demander à Chrome de supprimer toutes les données de navigation :

Puis nous retournons sur le site et après un reload de la page, nous cliquons sur le bouton "Click to rediscover cookies" :

Même si les cookies réutilisés sont en faible nombre, notre ami EverCookie retrouve bien quelques données, preuve que certains de ses cookies sont bien indigérables pour Chrome après un nettoyage forcé.

Bientôt dans votre assiette
L'auteur de EverCookie ne compte pas s'arrêter là puisque la feuille de route annonce l'arrivée prochaine de cookies basés sur la technologie Silverlight, ainsi que l'utilisation de code Java.