Jeremy Selier

CSS History Hack

Un article pour vous parler d'une petite vulnérabilité présente sur certains navigateurs appelée : CSS History. Découvert par Jeremiah Grossman, ce hack permet de savoir pour un site donné si le visiteur affichant votre page internet est allé visiter ce site.

La méthode est vraiment simple, le plus dur était probablement de penser à cette idée ! Il existe depuis la norme CSS1 l'attribut :visited qui permet de mettre un style particulié aux liens de votre page que l'utilisateur a déjà visité. La majorité du temps, les développeurs et designers laisse ce style par défaut, ou dans l'autre majorité des cas, ils écrasent ce style pour qu'il soit identique au style de la balise <a>.

C'est donc cet attribut CSS que nous allons utiliser. La deuxième chose à connaitre pour réaliser ce hack est la fonction qui nous permettra de récupérer la couleur du lien affichée par le navigateur. Cette fonction document.defaultView.getComputedStyle(a, null).getPropertyValue("color"); nous permet de récupérer la valeur actuelle de la couleur de l'élément a. Il ne faut pas confondre avec l'attribut CSS color dont vous pouvez accéder à la valeur de cette façon element.style.color. En effet dans ce cas, la valeur retournée vaudra la valeur que vous avez assignée via votre feuille de style à l'élément a et non a:visited.

Vous pouvez aller voir une démo ici, je vous recommande vivement de jeter un oeil au code source, c'est toujours intéressant. Ce n'est pas une vulnérabilité importante mais j'imagine facilement des cas d'utilisations qui pourraient être intéressant pour un webmaster, comme par exemple savoir si le visiteur est allé sur un site concurrent. D'ailleurs ha.ckers.org nous informe que quelque sites utilisent cette technique. Que cela soit pour savoir si vous êtes allé sur un site pornographique ou pas, on est jamais trop prudent, prenez donc le temps de nettoyer votre cache et votre historique de temps à autres.

All posts >