点过的网页会变色?没错,这玩意把你的浏览记录漏光了
itomcoil 2025-05-24 14:44 3 浏览
提起隐私泄露这事儿,托尼其实早就麻了。。。平时网购、换手机号、注册各种账号之类的都会咔咔泄露,根本就防不住。
但托尼真是没想到,浏览器里会有一个看起来完全人畜无害的功能,也在偷偷泄露我们的个人隐私,而且这一泄露就 23 年。。。
这个功能我保证大家都用过。不知道各位差友们有没有这种印象,初中上微机课那会儿,当同学们满怀激动的心情打开 4399 ,一眼就能看出上一波上课的玩了什么游戏 —— 就看游戏的链接有没有变紫,链接变紫了,说明这个页面前不久刚打开过。
不光是 4399 啊,这个贴心的小功能其实广泛存在于各大网页里,就比方说我在搜索引擎里打开了差评的官网,回退后就能发现链接的颜色变成了紫色,本质上是提醒你:“ 你之前打开过这个网页了哦!” 能让你浏览信息的效率变得更高。
对,别怀疑,泄露隐私的就是这么个不起眼的小功能。
在聊这玩意为啥能泄露隐私之前,咱们不妨先来扒一扒这个功能是怎么做到让浏览过的网页链接变色的。
我们知道,一个网页要想好看,排版必须得合理,这就要用到一个叫 “ CSS 语言 ” 的东西了。它能定义网页的字体、颜色、间距、对齐方式这些视觉元素,改善用户的视觉体验。
这个链接变紫的操作,就是这个 “ CSS ” 根据浏览器历史文件,把浏览过的链接标记为 “ :visited ”,然后再把颜色设置为 “ purple ”,代码大概是这样。
这样一来,浏览过的网页链接都会被 CSS 打上标签、变更样式,跟没浏览过的网页区分开来。
然后问题就出现了:因为这个 “ :visited ” 是一个全局列表,假设你在 “ 差评 ” 网站上访问了 “ 火锅 ” ,那 “ 火锅 ” 的链接会变紫色对吧;但紧接着,如果你访问了一个名叫 “ 好评 ” 的山寨网站,里头也有一个同样的 “ 火锅 ” 链接,这个链接也将会是紫色。
这样一来好评也知道你撸过火锅了。
浏览器只认历史记录里的链接,压根儿不管你是在哪儿看过的这个链接。
那么如果有一个恶意网站,里边内嵌了很多很多链接,那么理论上网站的管理者只需要利用这个漏洞,读取你页面上的 CSS 信息,就能知道你之前浏览过哪些链接。
我知道这会儿肯定有人会说了,不就是个浏览历史吗,泄露了就泄露了呗,对面难不成还能拿这个卖钱?
还。。。真能卖点钱,对于某些领域来说,这种信息还是挺有价值的。
依靠这个漏洞,老板能看到自己的员工有没有偷偷摸鱼刷 Boss 直聘、卖车的销售能看到你都考虑过哪些竞品、甚至哪儿不舒服搜过什么症状,卖保健品的都能给你精准推送一波。
单说这些其实还好,最多就是烦人一点,但这种信息要是收集的多了,就能跟特定的身份联系起来,识别出你是谁。
就比如说最早用来读取用户网页上 CSS 信息的办法,是一个叫做 “ getComputedStyle() ” 的 JavaScript 函数,每分钟可以测试几十万个链接。按照这样的速度,可以快速、大量破解用户的历史记录,这种体量的数据一旦暴露,这就真是实名制上网了。
最令托尼担忧的是托尼在刷相关事例的时候还发现了一个已经挂了很久的网站,宣称让你的兄弟打开这个页面上的链接,就能看到你兄弟曾经看过什么淘气页面。
还好已经挂了。
不知道屏幕前多少差友捏了一把冷汗,反正我是没有。
而这么危险浅显的一个漏洞,最早在 2002 年就被一个名叫 David Baron 的开发者发现并上传,迄今已经过去 23 年之久了。。。
它为啥能活这么久呢?中间就没有人想去解决这个问题吗?
有的朋友,有的,但效果都不理想。
就比如说针对上面提到的那个 “ getComputedStyle() ” 函数,有些浏览器就进化了,会对网站 “ 撒谎 ” ,将所有链接都看作是未访问过的。
后来也有一些对网站可用样式做限制的方案,直接把紫色链接的显示禁止掉了。
但这些要么影响性能和兼容性,要么总是被黑客找办法绕了过去。。。大家就这样缝缝补补了好多年,也只能对这个漏洞起一些缓解的作用,没法彻底解决。
最后 Chrome 团队都摆烂了,直接把用户反馈上来的相关问题标为 “ 无法解决 ” 。
不过这场闹剧也许终于要结束了。根据 Google 软件工程师 Kyra Seevers 的说法,这个漏洞已经在今年4月份 Chrome 136 版本中得到解决了。
那这回 Google 是怎么解决掉这个陈年积案的呢?托尼研究了一下 Kyra Seevers 发的这篇博客文章,发现他们给浏览记录整了个分区。
这个分区分为三个部分:链接网址,顶级网站和框架源,浏览器在记录浏览历史的时候会同时记录下这三个部分的信息。我们先不讨论这个 “ 框架源 ” ,还是用之前差评和火锅的例子给大家捋捋。
大家在 “ 差评 ” ( 顶级网站 ) 上打开 “ 火锅 ” ( 连接网址 ),火锅的链接会变紫;而这回山寨 “ 好评 ” 上的 “ 火锅 ” 链接就不会跟着变紫了,因为它们有不一样的顶级网站。
而这个 “ 框架源 ” 则是为了兼顾更多的场景,因为有的时候网站会内嵌一个其他网站的页面,里边也可能会有链接,这就也得做一个区分。
比如我们在 “ 差评 ” 内嵌的 “ 高德地图 ” 页面( 框架源 )里点击了 “ 火锅 ” 链接,它会变紫;但 “ 差评 ” 内嵌的 “ 百度地图 ” 页面上同一个 “ 火锅 ” 链接就不会变紫,因为它们的框架源不同。
当这个分区启用了之后,这个 “ :visited ” 历史记录就不再是所有网站都能查询的全局列表了,而会根据这三个分区去判断你到底是不是头一回儿访问这个链接,中间只要有一个分区对不上,CSS 就不会给链接标记 “ :visited ”,颜色样式也不会有变化。
好兄弟再不会知道你看了什么淘气页面了!如果一切顺利,等到月底 Chrome 浏览器更新 136 版本,这个长达 23 年,通过链接变色泄露隐私的抓马漏洞终于要落下帷幕了。
所以托尼的朋友们从此可以高枕无忧了吗?还不行,相关隐私泄露的风险依旧存在,而且岁数这么大的漏洞也屡见不鲜。。。
这次托尼在查相关资料的时候,发现了一篇 2000 年的论文,论文中讨论了一种针对网络隐私的时序攻击方式,大概的原理是网站通过你页面加载的时间,判断你之前有没有对页面内容进行缓存,进而推测你之前是否访问过这个页面。
不得不说,人类为了达成某种目的,真的是什么歪门邪道都能想得出来。。。。
而现如今,这个 25 岁高龄的漏洞也没有被彻底解决,时序攻击的依据也从缓存加载时间进化到渲染矢量图的时间,道高一尺魔高一丈。
这事儿去年还被拿出来讨论过
除了这些攻击, Google 在这次还在 Github 关于浏览器历史分区技术的解释页面,贴心为我们总结了一批专门攻击浏览器历史记录的漏洞,看着长长这一条,托尼说不焦虑是假的。
聊了这么多,托尼知道很多人仍然对于 “ 浏览器历史记录 ” 这种程度的隐私泄露不以为然。
可托尼想说,现在的情况跟 20 几年前已经完全不同了,互联网已经成了大家生活中不可或缺的一部分,网上的信息也承载着越来越重的意义,而且任何隐私都本不该被泄露。
见微知著,都 2025 年了,如果连一个浏览器历史记录都管不好的话,怎么能让大家放心在网上冲浪呢?
- 上一篇:Axure教程:高保真数据可视化原型
- 已经是最后一篇了
相关推荐
- 点过的网页会变色?没错,这玩意把你的浏览记录漏光了
-
提起隐私泄露这事儿,托尼其实早就麻了。。。平时网购、换手机号、注册各种账号之类的都会咔咔泄露,根本就防不住。但托尼真是没想到,浏览器里会有一个看起来完全人畜无害的功能,也在偷偷泄露我们的个人隐私,而且...
- Axure教程:高保真数据可视化原型
-
本文将介绍如何制作Axure高保真数据可视化原型,供大家参考和学习。高保真数据可视化原型设计,称得上是Axure高阶水平。数据可视化在原型设计中是一个重要的分支,但是对于Axure使用者具有一定要求。...
- Flutter web开发中禁用浏览器后退按钮
-
路由采用的go-router路由框架:finalrootNavigatorKey=GlobalKey<NavigatorState>();finalGoRouterrouter...
- jQuery 控制属性和样式
-
标记的属性each()遍历元素:each(callback)方法主要用于对选择器进行遍历,它接受一个函数为参数,该函数接受一个参数,指代元素的序号。对于标记的属性而言,可以利用each()方法配合th...
- 微信小程序入门教程之二:页面样式
-
这个系列的上一篇教程,教大家写了一个最简单的Helloworld微信小程序。但是,那只是一个裸页面,并不好看。今天接着往下讲,如何为这个页面添加样式,使它看上去更美观,教大家写出实际可以使用的页...
- 如何在Windows11的任务栏中禁用和删除天气小部件图标?
-
微软该公司已在Windows11的任务栏中添加了一个天气小部件图标,作为小部件的入口点。这个功能与之前Win10上的新闻与资讯功能相同,但是有的用户不喜欢想要关闭,不知道如何操作,下面小编为大家带来...
- CSS伪类选择器大全:提升网页交互与样式的神奇工具
-
CSS伪类选择器是前端开发中不可或缺的强大工具,它们允许我们根据元素的状态、位置或用户行为动态地应用样式。本文将全面介绍常用的伪类选择器,并通过代码示例展示其实际应用场景。一、基础交互伪类1.超链接...
- 7个Axure使用小技巧
-
编辑导读:对于Axure原型工具,很少有产品经过系统学习,一般都是直接上手,边摸索边学习,这直接导致很多快捷操作被忽视。笔者在日常工作中总结出以下小技巧,希望对各位有帮助。之前整理了2期Axure的...
- JavaScript黑暗技巧:禁止浏览器点击“后退”按钮
-
浏览网页时,当从A页面点击跳转到B页面后,一般情况下,可以点击浏览器上的“后退”按钮返回A页面。如果进入B页面后,B页面想让访问者留下,禁止返回,是否可以实现呢?这简直是要控制浏览器的行为,虽然有些邪...
- 对齐PyTorch,一文详解OneFlow的DataLoader实现
-
撰文|赵露阳在最新的OneFlowv0.5.0版本中,我们增加了许多新特性,比如:新增动态图特性:OneFlow默认以动态图模式(eager)运行,与静态图模式(graph)相比,更容易搭建网...
- Python计算机视觉编程 第一章 基本的图像操作和处理
-
以下是使用Python进行基本图像操作和处理的示例代码:使用PIL库加载图像:fromPILimportImageimage=Image.open("image.jpg"...
- PyTorch 深度学习实战(31):可解释性AI与特征可视化
-
在上一篇文章中,我们探讨了模型压缩与量化部署技术。本文将深入可解释性AI与特征可视化领域,揭示深度学习模型的决策机制,帮助开发者理解和解释模型的内部工作原理。一、可解释性AI基础1.核心概念特征重要...
- 学习编程第177天 python编程 富文本框text控件的使用
-
今天学习的是刘金玉老师零基础Python教程第72期,主要内容是python编程富文本框text控件。一、知识点1.tag_config方法:利用某个别名作为标签,具体的对应标签的属性功能配置在后面参...
- 用Python讓電腦攝像頭實現掃二維碼
-
importsys#系統模組,用來存取命令列參數與系統功能importcv2#OpenCV,處理影像與相機操作importnumpyasnp#Numpy,用來處理數值與...
- 使用Transformer来做物体检测
-
作者:JacobBriones编译:ronghuaiyang导读这是一个Facebook的目标检测Transformer(DETR)的完整指南。介绍DEtectionTRansformer(D...
- 一周热门
- 最近发表
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)