QQ登录

点击进入授权页面

查看: 122|回复: 0

开启浏览器Do Not Track [禁止追踪] 功能

[复制链接]

6

主题

6

帖子

43

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
43
发表于 2018-12-4 20:56:48 | 显示全部楼层 |阅读模式

什么是Do Not Track(DNT) [禁止追踪]    Do Not Track(DNT)实际是一个涉及隐私保护的协议,它是用户和网站之间的一个“君子协定”,通过此协定,用户可以允许也可以禁止网站搜集自己在网上的隐私踪迹,比如常去哪个网站,有什么购物习惯,经常搜索哪些关键词等。


类同于浏览器的无痕模式吗
    从定义上来说,Do Not Track(“请勿追踪”,以下简称DNT)是一个能避免用户被来自从未访问过的第三方网站跟踪的浏览器功能,DNT并不采用手段过滤或阻止追踪Cookies,而是当用户提出 “Do not track” 请求时,具有“Do not track”功能的浏览器会在HTTP数据传输中添加一个“头字段”(headers),这个头字段会告诉商业网站的服务器用户不希望被追踪。


怎么进行工作的
    当我们在浏览器中输入一个网址(URL)并按下回车键之后,将发生什么样的事情?这是一个典型的HTTP连接,一般会经历以下过程。
1.DNS Lookup(域名解析):浏览器将网址传送到DNS服务器上,DNS将网址解析成真正的IP地址返回给浏览器。
2.Connection(创建连接):通过IP地址,浏览器与所要访问的网站服务器建立连接(相当于架在两者之间的一个虚拟通道)。
3.Send(发送请求):连接成功后,浏览器向服务器发送HTTP请求消息,一般包括HTTP头消息、POST或GET请求、Cookie(如果上次浏览该网站曾留下过Cookie的话)等。
4.Wait(等待响应):等待服务器的响应。服务器分析HTTP请求信息,并且提取其中Cookie(如果有的话)记录的数据,如你的购物记录、个人喜好等信息。
5.Receive(接收数据):服务器将所请求的资源(比如HTML文件和图像)传送给浏览器,浏览器下载并同步显示网页。



有作用吗
    如果你启用了“不跟踪”,则向服务器发送的请求我们都会带一个“Do Not Track”的请求头,至于会对你浏览页面有什么影响,要看这个网站对这个请求怎么处理。
    直白一点你可以这么理解:尊敬的用户啊,如果你启用了“不跟踪”,我们浏览器呢,会仁至义尽,给网站服务器、客户端都发送用户不希望被跟踪的信息。至于你访问的这个网站是否尊重你的设置,我们就无能为力了!


如何对DNT进行检测

    Cookie保存了我们的上网隐私,它并不像我们所想像的那样是由本机的浏览器生成的,实际cookie是网站发送过来的,只不过是通过浏览器保存在了本机上。
    DNT目前支持三个值:“1”表示用户不允许被追踪(即选择退出),
   “0”表示用户允许被追踪(即选择加入),
   而空值(即不发送头字段的默认设定)表明用户并未表达出特定的喜好。
    检测DNT的方法,实际就是各网站服务器检测DNT的基本方法。遵守DNT协议的网站,一旦检测到用户不允许他们追踪的话(也就是DNT=1),它将不会推送Cookie。但是,这只是“君子协定”,实际上并没有从技术上进行阻止。也就是说,如果网站我行我素,忽略DNT,用户隐私依然没有保障。


开启之后对现有的有影响吗
    现阶段对于用户体验(尤其是浏览国内网站)而言,基本没有任何影响。
     如果有大量用户使用 “Do not track”  ,它带来的最大的影响莫过于对网络广告行业的冲击。
    如果您需要个性推荐类似的服务,不建议您开启,否则反之。


如何开启
    目前各主流浏览器皆支持。


前端开发人员可以做些什么
浏览器在前端提供了Do Not Track API,可以让前端开发人员知道用户是否开启了Do Not Track。
这个HTML5 API就是navigator.doNotTrack,IE9和IE10还需要私有前缀navigator.msDoNotTrack,然后IE11+不知出于什么考虑,使用window.doNotTrack代替了navigator.doNotTrack。
除了API名称细节差异,对于doNotTrack属性的返回值也存在差异,具体参见下表:
微信截图_20181204205838.png
也就是,所有浏览器如果用户开启了“不追踪”,则API返回值是'1';如果没有开启,则IE9,IE10返回'0',IE11+和Chrome返回null,Firefox浏览器返回'unspecified'。
因此,我们可以逻辑合并,这样获知用户是否这是了“不跟踪”:
var isDoNotTrack = (navigator.msDoNotTrack || window.doNotTrack || navigator.doNotTrack) == '1';// 如果设置“不跟踪”,isDoNotTrack为true
接下来就可以付诸实际应用了。
比方说,很有产品搜索会有历史搜索,如果用户选择了“隐私不跟踪”,则原来现实历史搜索列表的地方可以这么提示:
“由于您选择了隐私跟踪保护,您的搜索历史我们不会记录!”
例如新浪微博的搜索历史就会长下面这样:
可见新浪也注重DNT



可见,DNT并不能真正保护隐私。而且,Cookie只是泄露用户隐私的途径之一,其他如病毒木马,甚至社交网站、LBS服务,都可能泄露隐私,绝不能指望DNT来一劳永逸的解决。多一种选择总是好的,只是不要过于迷信它就是了,人人对这块都加以关注的话,整个大环境想必也会越来越好。




* DNT 也会发 HTTP 头,服务端也可以拿到。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/DNT
* DNT 在跨域情况下会产生额外问题,使得Mobile Safari跨域问题尤为麻烦。重定向时会把 Simple Request 变成非 Simple Request 导致一次 Preflight









下一篇:一图了解手机SIM卡的PIN码
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

快速回复 返回顶部 返回列表