如何保护隐私之如何隔离浏览器

安全 应用安全
看过《如何保护隐私之关于软件和服务的选择》,了解了《如何保护隐私之浏览器如何导致隐私泄漏》以及《浏览器Cookie的防范方法》之后,面对浏览器存在的安全隐患,我们该如何隔离浏览器呢?

看过《如何保护隐私之关于软件和服务的选择》,了解了《如何保护隐私之浏览器如何导致隐私泄漏》以及《浏览器Cookie的防范方法》之后,面对浏览器存在的安全隐患,我们该如何隔离浏览器呢?

★如何隔离浏览器?

◇为啥要隔离浏览器?

举例1:

你经常使用 Gmail,并且依赖于 Gmail 的自动登录功能。这种情况下,你就不能禁用 google.com 域名对应的 cookie(禁用了就无法自动登录)。但是,如果你不禁用 google.com 域名对应的 cookie,当你使用 Google 的搜索功能时,Google 会知道你的搜索偏好(这涉及到隐私)。

举例2:

虽然浏览器插件会导致隐私问题(本系列前面的博文有提到),但有些浏览器插件是你不得不安装的。比如你想看在线视频,不得不装 Flash 插件;比如你使用网银,不得不安装某些登录的控件。

如果学会了"浏览器隔离"的招数,就可以搞定上述难题,鱼和熊掌兼得。下面,俺分别介绍几种不同的隔离方法。

◇多浏览器

这是最简单的隔离方法——使用不同类型的浏览器(比如同时 Firefox 和 Chrome)。

对于刚才的第一个例子。你可以在 "A浏览器" 里面登录 Gmail,通过设置允许 "A浏览器" 存储 google.com 域名的 cookie;然后你用 "B浏览器" 进行 Google 搜索。

只要你确保一点:从来不在 "B浏览器" 中登录 Gmail,那么 "B浏览器" 的 cookie 中就不会有你的用户标识。所以你用 "B浏览器" 进行 Google 搜索的时候,Google 不知道你是谁。

◇多实例

但是有些用户就喜欢某款浏览器,不喜欢混用。那就可以考虑 "多实例" 的招数。目前的三大浏览器中,Firefox 和 Chrome 支持多实例,IE 不支持。啥是多实例捏?稍微解释一下。

所谓的浏览器多实例,洋文称之为 "Multiple Profiles"。

不论是 Firefox 还是 Chrome,默认安装的时候,只有一个实例(Profile)。和浏览器相关的各种信息,包括:插件、扩展、外观(皮肤)、页面缓存、cookie、等等,都存储在这个实例中。

反之,如果使用多实例,每个实例都具有独立的插件、独立的扩展、独立的外观(皮肤)、独立的页面缓存、独立的cookie、等等。不同实例之间是相对隔离的,不会互相影响。

对于 Chrome,再特别提醒一下:

Chrome 同时支持 "Multiple Profiles" 和 "Multiple Accounts"。但别把这两者搞混了。即使你配置了多个Accounts,依然在同一个实例里(有兴趣的同学可以看chromium 官网的相关介绍)

关于多实例的配置,一年前写《如何防止黑客入侵》系列的时候,已经介绍过了(请翻墙看"这里"),今天就不再浪费口水了。

◇多用户

万一你喜欢的浏览器是 IE,而 IE 又不支持"多实例",咋办捏?招数还是有滴,那就是"多用户"。

你可以创建多个操作系统用户,然后在不同的操作系统用户中分别运行同一款浏览器。所有主流的操作系统都会对系统用户的资源进行隔离。所以,你在不同的操作系统用户中运行的浏览器,也是互相隔离的(包括 插件、扩展、cookie、缓存、都不会互相影响)。

在多用户方式下运行浏览器,你可以使用"快速用户切换"的功能,在不同用户的桌面之间切换。但是有一个缺点:你一次只能看到某一个用户运行的软件,其它用户运行的软件看不到。其实有一个小技巧,可以在同一个桌面运行多个用户的软件。具体请看这篇博文中的"多用户浏览器共享同一个桌面的技巧"。

◇多虚拟机

大部分场合用上述三招基本就能搞定了。但有捏,有时你会碰到一些比较变态的网银控件,一定要用系统管理员才能安装,有的控件甚至做到了"驱动级"。对于这种变态的控件,即使用"多用户"的隔离方案,也行不通了。只能使用"多虚拟机"来隔离。

"多虚拟机"的方案,说起来挺简单——就是安装多个操作系统虚拟机,把浏览器安装到虚拟机中。利用虚拟机来进行隔离,每个虚拟机就如同一台单独的电脑,这种隔离性,比前面三个方案更加彻底。如果你不熟悉操作系统虚拟机,请先看《扫盲操作系统虚拟机》系列博文。#p#

★DNT(Do Not Track)

说完了浏览器的隔离,再来说几个杂项。首先说说 DNT 这玩意儿。

◇DNT 是啥?

DNT 是洋文 Do Not Track 的缩写,中文译作"请勿追踪"。它最早是由 Mozilla 的一个工程师在 2009 发明的,如今已经成为 W3C 的标准。截至 2012年底,所有知名的浏览器都已支持 DNT 标准。

◇DNT 的原理

这玩意儿说白了没啥技术含量,其原理大致如下:

如果你在浏览器中启用了 DNT,那么浏览器每次访问网站的时候,会在 HTTP 请求的 header 部分加入一个 DNT 的标识。网站的服务器接收到这个 HTTP 请求,看到此标识,就知道该用户不希望被追踪。

如果这个网站遵循 W3C 的规范——当它看到这个 DNT 标识,就不应该使用 cookie 之类的手段来追踪用户的行为。反之,如果这个网站不遵循 DNT 的规范,它就会直接无视 HTTP 请求中的 DNT 标识。

◇DNT 有用吗?

通过上述介绍你应该可以看出:DNT 技术并不是一项很保险的防范措施。DNT 要起作用需要靠网站方面自觉配合。如果你访问的网站比较流氓,不愿意配合这个规范,那你的 DNT 设置就形同虚设。

所以,DNT 是一个有点鸡肋的功能,不能全指望它,但"启用"比"不启用"要好——毕竟那些正规的网站(比如 Twitter)还是会遵循 DNT 规范的。#p#

★User Agent

◇什么是 UserAgent?

浏览器方面还有一个涉及到隐私的因素,而且不太为人所知,那就是 User Agent。

浏览器的 User Agent 是用来标识客户端的信息(包括 浏览器的类型和版本、操作系统类型和版本、等等)。浏览器向网站发起 HTTP 请求时,会在 HTTP header 中加入 User Agent 信息。

◇User Agent 有啥用?

因为 User Agent 标识了浏览器客户端的信息,网站拿到这些信息之后,就可以针对客户端的不同,发送针对性的网页。比方说,如果客户端是移动设备(屏幕较小),就发送针对小尺寸屏幕的网页。

从这里的介绍可以看出,User Agent 本身是有用的。

◇User Agent 有啥隐私问题?

但是,有些浏览器的 User Agent 写得太详细了。这就导致:很多额外的客户端信息也通过 User Agent 提交到 Web 服务端。网站拿到这么详细的信息,就可以知道你操作系统和浏览器的很多细节。另外,User Agent 越详细,"独特性"就越明显。那么网站就可以利用 User Agent,大致猜测某些页面访问是否来自同一个人。

放几个比较详细的 User Agent 给大伙儿参观一下:

(某个 IE)

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 4.0; Tablet PC 2.0; InfoPath.3; .NET4.0C; .NET4.0E)

(某个 Opera)

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101213 Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01

(某个腾讯浏览器)

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; QQPinyin 686; QQDownload 661; GTB6.6; TencentTraveler 4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)

想知道自己的浏览器,User Agent 是啥样的吗?打开 http://www.useragentstring.com/ 就可以看到了。

◇要不要修改 User Agent?

对于大部分网友而言,如果对隐私方面的要求不高,没必要修改 User Agent。因为 User Agent 虽然会泄漏某些信息,但是泄漏的信息量比较有限。所以,User Agent 相对于 cookie 而言,隐私问题不是很严重。

但如果你对隐私的要求很高,可以考虑修改自己浏览的默认 User Agent,伪造一个假的。

◇如何修改 User Agent?

要想避免 User Agent 泄漏隐私,简单的办法就是修改浏览器默认的 User Agent

俺简单说一下三大浏览器如何修改默认的 User Agent

Firefox

在地址栏输入 about:config 敲回车,打开首选项界面

点右键,新建一个字符串类型的"首选项",该首选项的名称必须是 general.useragent.override ,该首选项的值就是新的 User Agent

Chrome

在 Chrome 的启动参数中加上  --user-agent="XXX"

XXX 就是新的 User Agent。(可以在快捷方式中追加命令行的启动参数)

IE

用 regedit 打开注册表,编辑如下键值

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet SettingsUser Agent

输入新的 User Agent

◇User Agent 修改成啥样?

用上述方式,可以伪造你浏览器的 User Agent。那么,伪装的 User Agent 该如何写捏?下面这3个链接包含了三大浏览器常见的 User Agent,供大伙儿参考。

Firefox 的 User Agent、Chrome 的 User Agent、IE 的 User Agent

你可以把自己浏览器的 User Agent 伪装成另外的两种之一。

责任编辑:蓝雨泪 来源: 博客
相关推荐

2013-08-16 17:10:56

2013-08-16 17:25:59

2012-11-19 08:27:15

2013-07-01 15:16:18

浏览器上网隐私

2019-07-26 10:55:36

2017-04-05 17:58:17

2012-11-23 11:25:12

2011-06-09 10:26:38

2010-08-26 14:03:23

隐私保护

2013-11-18 14:42:53

浏览器渲染

2021-05-11 09:07:18

Chrome浏览器HTML标签

2022-01-12 10:08:47

浏览器隐私Chrome

2022-01-24 11:58:42

StartpageFirefoxChrome

2009-06-22 14:06:00

java浏览器

2023-07-30 22:34:56

隐私保护检索

2021-01-27 11:01:21

密码保护工具微软浏览器

2013-11-08 09:10:23

2019-12-26 09:14:56

FirefoxGoogle浏览器

2022-01-12 20:37:06

浏览器隐私保护跨站点跟踪

2021-03-07 00:32:43

信息安全隐私互联网
点赞
收藏

51CTO技术栈公众号