Detekce historie prohlížečů pomocí triku s CSS:visited je známá více než deset let, ale poslední výsledky výzkumu ukazují, že problém je větší, než se předpokládalo.
Během studie se analyzovaly výsledky více než 250 000 lidí, kteří procházeli testy několik měsíců a bylo zjištěno, že historii prohlížených stránek je možné zjistit u více než 76 %. Všechny hlavní prohlížeče dovolují detekci historie, ale modernější prohlížeče jako Safari a Chrome jsou mnohem zranitelnější: 82 % uživatelů Safari a 94 % uživatelů Chrome bylo zasaženo.
V tomto případě nepomáhá vypnutí JavaScriptu, dokonce uživatelé bez JavaScriptu byli náchylnější k detekci historie než ostatní. Ačkoliv je možné k této detekci používat JavaScript, který testuje barvu odkazu, totéž je možné docílit pouhým CSS. Stačí uvést konkrétní url v a href odkazu s id. Pak se vytvoří pseudo třída, která v případě, že uživatel byl již na uvedené adrese, zobrazí obrázek na pozadí, který se liší podle toho, který odkaz byl navštíven. Podívejme se raději na příklad:
< style >
a#link1:visited { background-image: url(/log?navstiven_odkaz1); }
a#link2:visited { background-image: url(/log?navstiven_odkaz2); }
< /style >
< a href="http://google.com" id="odkaz1" >
< a href="http://seznam.cz" id="odkaz2" >
Jak je z příkladu zřejmé, uživateli se nahrají obrázky na pozadí odkazu pouze tehdy, navštívil-li příslušné stránky.
Ačkoliv rozsah studie byl omezený, byli schopni otestovat 5000 populárních webových stránek na kterých detekovali v průměru 64 navštívených míst (13 stránek a 50 podstránek). Stejným způsobem bylo možné detekovat PSČ návštěvníků, kteří vyplňují online formuláře pro 9,8 % uživatelů. Toto byla pouze studie, v reálném světě by se tímto způsobem mohly zjišťovat také hesla a přihlašovací jména.
Jak je vidět v příkladu výše, detekce historie prohlížeče je velmi jednoduchá a vyžaduje jen pár řádků kódu. Pokud jsou vybaveni seznamem web stránek, škodící webmaster může skenovat více než 25 tisíc odkazů na vteřinu v každém novém prohlížeči.
Odkazy z novinek: