:visited CSS History reconnaissance 的解决方法

信息安全 网页浏览器 隐私 html
2021-09-01 12:28:58

几年前可以使用

a:visited {
   background: url('/log.php');
}

找出以前的网站用户。但现在它受到浏览器的限制。有没有其他方法可以知道用户最近访问了哪些网站?

2个回答

这仍然是可能的。但是,现在要不引人注目地做起来要困难得多。有关如何执行此操作的详细信息,请参阅以下研究论文:

请不要在未经他们同意的情况下使用它来监视您网站的访问者。这有可能是一个糟糕的商业举措。

我们以前经历过这种情况。上次一些网站尝试使用 CSS 历史嗅探时,他们最终被抓住了。他们使用历史嗅探的事实登上了新闻,并引起了 FTC 和许多其他人的注意。提起了诉讼,并展开了调查。所以我认为我们有确凿的证据表明,如果你对访问者进行历史嗅探,你就是在自找麻烦。有关这方面的更多信息,请参阅以下来源:

这是很有可能的。他们用来防止这种攻击的技巧包括禁用:visited选择器上的 CSS。但是,这并不能阻止选择器仍然存在!

您可以使用 JavaScript 遍历一组链接,检查:visited每个链接上的选择器。可以使用 进行检查cssRules,它应该告诉您哪些规则正在应用于 DOM 元素。找到访问过的那些后,您可以将 Ajax 发布回站点以存储结果。这个技巧有一个概念证明,尽管不能保证它在所有浏览器中都是正确和有效的。