从前端视角看浏览器隐身模式工作原理 您所在的位置:网站首页 浏览器开启无痕模式真的有用吗 从前端视角看浏览器隐身模式工作原理

从前端视角看浏览器隐身模式工作原理

2023-09-12 09:17| 来源: 网络整理| 查看: 265

大家好,我是 漫步,平常为了不让别人知道你浏览过哪些网页,一般会打开隐身模式,你知道这个原理吗?一起来看下文。喜欢记得关注我并设为星标方便及时收到更新。

本文从科普和技术视角对浏览器隐身模式进行介绍,全文脉络如下,读者可根据兴趣选择对应章节阅读。

d838a1aa6a3b1c4b551bb9bb65921158.png IncognitoMode 认识隐私模式 隐私模式隐藏了什么

现代网络浏览器,大多数都增加了隐私浏览模式来浏览网页,旨在保护用户隐私。Chrome 称之为隐身模式;Opera、Safari 和 Firefox 中一般称为隐私浏览。这些模式以深色主题和蒙面人物图标为特征,可以给用户一种匿名浏览的印象。芝加哥大学和汉诺威莱布尼茨大学的研究人员发现,人们对隐私浏览或隐身模式存在很多误解,许多用户认为隐私浏览可以保护他们免受恶意软件、广告、跟踪脚本和互联网服务提供商 (ISP) 的监控。

其实,隐私浏览旨在避免在计算机上保留浏览会话的痕迹。因此,当你打开隐私窗口时,主浏览窗口中的 cookie、浏览历史不会被保留。当你关闭隐私浏览窗口时,你的浏览历史记录、保存的密码以及你在该窗口的文本字段中键入的内容(用户名、电话号码等)都将被擦除。这意味着使用你的计算机并启动浏览器的下一个人将无法找出你在私人浏览会话期间访问了哪些网站,即便是你自己,当下次使用这些网站未登录帐户时,你也将以新用户的身份出现。

隐私浏览是一种非常有用且方便的工具,可用于快速浏览会话,不会在你的计算机上留下痕迹。它将保护你的隐私免受使用你计算机的其他人的侵害,并减少你在访问网站时透露的一些有关你自己的信息。但是隐私浏览不会让你匿名,也不会保护你免受监视和大型技术窥探。

说到泄露隐私,很多人认为只要自己不登录、不使用 cookie,使用浏览器的无痕模式,自己的数据信息就是安全的、自己浏览了什么就只有自己知道了,那么,我们不妨直接看看浏览器官方自己的定义吧。

无痕模式(Incognito mode)是 Chrome 浏览器的一种设置,在 Chrome 浏览器里,它是这样描述的:

fbe400398af95a2436c3763cbd509388.png incognito_mode

简单来说,Chrome 无痕模式只是帮你删除了你存在本地的搜索和浏览记录,只是看起来“无痕”而已。要在 Chrome 中以隐身模式打开页面,请单击右上角的三点图标,从出现的下拉菜单中选择打开新的无痕窗口,或按 Ctrl+Shift+N。一个带有深色主题的新窗口弹出,并显示一条通知:“您已进入无痕模式”, 细则解释了隐身模式的优缺点。默认情况下,第三方 cookie(用于跨不同站点跟踪你)被禁用。

至于如何开启隐身模式,相信大多数人都是知道的,如果不知道,或者不知道某一款特定的浏览器如何开启隐身模式,可以参考下面这个链接。

How do I set my browser to Incognito or private mode?[1]

在实践中,即使在隐私模式下,网站仍然可以通过关联其他信息来发现你的身份,例如你的 IP 地址、设备类型和浏览习惯(一天中的时间、访问的页面等),隐私浏览不会隐藏任何数据。Facebook 和 Google 等大型科技公司拥有大量关于用户的信息,通过连接这些点,即使你尚未登录帐户,它们也可以识别你的身份。

浏览器隐身模式真的可以隐身吗?

通过前面的介绍,想必你的答案是确定的:不能。

我们可以通过一个展示隐私浏览跟踪的示例网站 —— Nothing Private[2]来证明这一点。这个网站的测试方式是让你先提交一个你的标识信息,之后让你使用浏览器的无痕模式访问网站,猜猜网站会不会认出你。

这里,我先填入了“獨釣寒江雪”,很明显的,当我提交信息时,浏览器除了发送了我填写的“獨釣寒江雪”,还有一个finger字段。

8ff42fb1b66087af4e42affd98adb72d.png nothingprivate1

当我使用无痕模式再次打开这个网站时,浏览器又携带了相同的finger字段去服务器查询相关信息,于是,我被识别出来了。

7b110e67c49b68ff1f9c8821c9812a12.png nothingprivate2

综上:浏览器无痕模式并不能保护你的数据信息不被网站的服务器所获取。准确的说,无痕模式就是掩耳盗铃而已。有兴趣的话,您不妨亲自去Nothing Private[3]体验一下,关于它的原理,后续章节会继续介绍。

隐私模式不能干什么

它不会保护你免受病毒或恶意软件的侵害;

它不会让你的 Internet 服务提供商 (ISP) 无法看到你上网的位置(事实上,无论你做什么,你的 ISP 几乎都可以访问你的所有浏览活动);

它不会阻止网站查看你的实际位置;

当你关闭网页时,你在隐私浏览或隐身模式下保存的任何书签都不会消失,它会被添加到你的正常浏览网页的书签中;

关闭窗口时不会删除你在私密浏览时下载到计算机的文件。

隐私模式使用现状

2017 年,DuckDuckGo[4]对 5,710 名美国人进行了浏览器隐私模式调查,以了解人们对隐私模式的认识以及他们如何使用这一常见的隐私功能,完整报告可参考:A Study on Private Browsing: Consumer Usage, Knowledge, and Thoughts[5]。

简单总结如下:

46% 的美国人使用过隐私浏览;

97973e7a28212a889a416f604b6f221c.png private-browsing1

人们使用隐私浏览的第一个原因是“令人尴尬的搜索”;

d94c45a26d59977ae85c1ad2a7514de5.png private-browsing2

76% 使用隐私浏览的美国人无法准确识别其提供的隐私优势;

d2a4424a39429e9a51bc4bf040055ebd.png private-browsing3

65% 的受访者表示,在了解隐私浏览的局限性后(隐私浏览模式只会阻止你的浏览器历史记录被记录在你的计算机上,并不会提供任何额外的保护),他们感到“惊讶”、“误导”、“困惑”或“受到伤害”;

af6b1d1bcaa69977bbccab0e5847a4b9.png private-browsing4

84% 的美国人会考虑尝试使用另一个主要的网络浏览器,如果它能提供更多功能来帮助保护他们的隐私的话。

1bcf4a7681817ec5fdbd658f6f0392cf.png private-browsing5

参考资料:Is Private Browsing Really Private?[6]

从技术视角看隐身模式 用户访问网站的过程

一般情况下,用户访问网站的过程如下图所示:

885158238ae8e0e00c6cc62362fef83e.png browsing_process1

当一位用户浏览网页时,一般会进行以下操作:

打开浏览器,输入网址。这时候浏览器就会默默将此过程保留在历史记录中;

连接请求通过用户家中的网线,层层递进,到达互联网供应商的主干网络,再接着连接到用户请求的网站地址,这个时候就网站就能拿到用户的 IP 地址了;

网站返回数据给用户,网页大部分的内容作为临时文件被暂存在用户电脑中;

用户如果进行注册/登录,则会将用户信息保存/更新在服务器端。将 Cookie 保留在本地作为验证用户的一种方式,避免用户多次反复的登录。当然进行注册时填写的手机号、邮箱、家庭住址也会被浏览器记录,方便用户下次调用。

可以看到整个过程一般而言有 3 种数据是保存在用户的电脑上的,那就是浏览记录、临时文件与 Cookie 和表单填写的内容。而有 1 或 2 种的数据被保留在了网站那边,就是 IP 地址和用户填写的注册信息。

现在非常多的公司和学校建立了专有的网络环境,对外只显示 1 个 IP,数据返回的时候再发送到相应的内网 IP 上。雇主和学校有心想看的话还是能够知道内网的某个人浏览了什么。对于 HTTP 网站链接,雇主和学校能够完整的了解用户浏览了哪些网站,用户看了哪些内容,停留了多久,针对哪些网站进行了点击跳转等等;对于 HTTPS 网站链接,由于证书的存在和相应的验证机制,一般而言 HTTPS 解密(中间人攻击)很难发动,所以只能够了解到用户浏览了哪些网站而已。同时不恰当的网络环境也会将自己的浏览记录暴露在他人的视野中,比如免费公用的 Wi-Fi。

aee1bff896b2bb6b66964ec2c6b08bb3.png browsing_process2 浏览器隐身模式检测的博弈

在 Chrome 76 之前,存在一个漏洞,许多网站利用该漏洞来检测用户是否在 Chrome 的隐身模式下访问网站。这些网站只需要尝试使用 FileSystem API 用于存储临时或永久文件的 。此 API 在隐身模式下被禁用,但在非隐身模式下存在,因此产生了差异,该差异被利用来检测用户是否正在使用隐身模式浏览网站并阻止这些用户查看网站的内容。

const fs = window.RequestFileSystem || window.webkitRequestFileSystem; if (!fs) {   console.log('check failed?'); } else {   fs(     window.TEMPORARY,     100,     console.log.bind(console, 'not in incognito mode'),     console.log.bind(console, 'incognito mode')   ); }

后来谷歌修复了一个漏洞,不幸的是,他们的修复导致了另外两种方法,仍然可以用来检测访问者何时进行私密浏览。

基于文件系统大小检测隐身模式:该方法基于为浏览器使用的内部文件系统预留的存储量。安全研究人员 Vikas Mishra发现[7],Chrome 隐身模式和非隐身模式之间存储配额存在区别,如果临时存储配额



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有