What is it?
Perhaps you've already heard or know about it.
As you can see, your browser differences between nonvisited and already visited links. By default, different colors are used, traditionally blue and purple, respectively. This makes it possible for a "hit and miss" principle attack to "read" your history, even without JavaScript.
How does it work?
In principle, it's very simple.
A hidden iFrame loads a lot of hidden links. There will be a Cascading Style Sheet provided to the browser to "poll" if one of those links has already been visited.
A CSS is supplied, which forces the browser to check if any of these links is flagged as visited - and if so, to load a background image, which is different for each link.
This is on the same server from which the attack is being executed, or any other one the attacked has access to, and it's not a real image file, but a script that's stored and processed.
Example:
www.a.de (www.myserver.de/a.jpg)
www.b.de (www.myserver.de/b.jpg)
www.c.de (www.myserver.de/c.jpg)
If a link is visited, each respective background (shown above between parentheses) is loaded, and the script registers a hit.
This means that if the scripts logs a request for a.jpg and c.jpg, it means the user has visited www.a.de and www.c.de, but not www.b.de.
As you can see and I said before, it's based on a "hit and miss" principle, meaning it can't read the history directly, but only ask for specific links.
What's the danger?
Trackers could use this system to catch SB-I, SM, etc. users, which will certainly end up with a ban.
Can we prevent it?
Firefox
Yes. I'll show you how to do it in Firefox.
Inside your Firefox profile's directory, there's a folder called chrome, which contains a file called userContent.css. If it doesn't, create it. (Pay attention to the extension, it's not userContent.css.txt but userContent.css).
It'll have the following line:
This line globally disables background loading for visited links. The user-defined !important parameter overrides any Web site-defined CSS.PHP Code:
a:visited { background-image: none !important; }
Does it work?
Yes, I have tested it.
The page below scans your history, and hits are visible on the left side. Even if just one appears, this means you're vulnerable to the attack.
Stealing your history...
Opera
Bookmarks