浏览器“不要追踪我”隐私选项 DNT 指标全面解析
发布于 作者:苏南大叔 来源:程序如此灵动~

现在的主流浏览器都支持DNT
设置,DNT
是英文Do not Track
的简写,翻译成中文就是“不要跟踪我”。在本篇文章中,苏南大叔给大家带来的就是,从编程角度如何看待这个浏览器选项。

美丽的愿景
我们必须承认一点:这个DNT
选项只是一个“美好的愿望”。是否跟踪,这个并不是浏览器说了算数的,而是你所浏览的网页的服务器端所决定的。
而你浏览网页的时候,你的基本信息(比如ip
,cookie
,浏览器ua
等等),都已经发送到了服务器端。而服务器端是否对你的“不要跟踪”的诉求,进行处理。这要看你所浏览的网站的服务器的人品和心情了。
比如,在piwik系统中,就有个选项,“是否支持客户端DNT”,这个就是上述结论的佐证。
上述情形,类似于爬虫是否识别robots.txt
一样。robots.txt
对爬虫的约束力,是靠爬虫本身来执行的。
客户端如何发送数据
以chrome
为例,我们来对这个问题进行展开讨论。看图说话,chrome
也警告大家,即使设置了这个选项,也是会有人使用你的隐私数据的。原因,不再赘述。


设置dnt
选项前后,浏览器所发送的header
头里面有如下变化。以浏览百度为例。

通过对比,我们可以看到,这个选项影响的就是header
头里面的DNT
选项。
服务器端如何处理
而苏南大叔在服务器段收到的数据如下:

以php
为例,这个数据可以在$_SERVER["HTTP_DNT"]
中读取到。这就成为,服务器端是否支持DNT
选项的唯一标准。
以piwik
/matomo
为例,在代码中,苏南大叔看到的相关的判断代码如下:

它的这个判断标准中,除了已经知晓的“HTTP_DNT”标准外,还有另外一个“HTTP_X_DO_NOT_TRACK”。至于后者,目前还没有检测到是哪种浏览器发出的。
firfox 和 safari
下面是firefox
和safari
浏览器的设置项截图。



ie浏览器
至于在遗忘之地的ie
浏览器,这个功能设置起来较为麻烦。(其实是非常麻烦,十分非常不好用,这里就不细讲了)。大家愿意试试的,可以看下图,自己试试。让ie
继续留在遗忘之地,不是更好嘛?

补充170715:ie10
的选项里面,有个较为简单的设置,隐藏的比较深。大家可以试试看。



