我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

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

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - browser-dnt
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-1)

美丽的愿景

我们必须承认一点:这个DNT选项只是一个“美好的愿望”。是否跟踪,这个并不是浏览器说了算数的,而是你所浏览的网页的服务器端所决定的。

而你浏览网页的时候,你的基本信息(比如ipcookie,浏览器ua等等),都已经发送到了服务器端。而服务器端是否对你的“不要跟踪”的诉求,进行处理。这要看你所浏览的网站的服务器的人品和心情了。

比如,在piwik系统中,就有个选项,“是否支持客户端DNT”,这个就是上述结论的佐证。

上述情形,类似于爬虫是否识别robots.txt一样。robots.txt对爬虫的约束力,是靠爬虫本身来执行的。

客户端如何发送数据

chrome为例,我们来对这个问题进行展开讨论。看图说话,chrome也警告大家,即使设置了这个选项,也是会有人使用你的隐私数据的。原因,不再赘述。

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - donottrack_0_chrome
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-2)

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - donottrack_1_chrome
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-3)

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

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - donottrack_2
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-4)

通过对比,我们可以看到,这个选项影响的就是header头里面的DNT选项。

服务器端如何处理

而苏南大叔在服务器段收到的数据如下:

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - donottrack_4_php
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-5)

php为例,这个数据可以在$_SERVER["HTTP_DNT"]中读取到。这就成为,服务器端是否支持DNT选项的唯一标准。

piwik/matomo为例,在代码中,苏南大叔看到的相关的判断代码如下:

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - piwik的dnt代码
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-6)

protected function isHeaderDntFound(){
  return (isset($_SERVER['HTTP_X_DO_NOT_TRACK']) && $_SERVER['HTTP_X_DO_NOT_TRACK'] === '1')
            || (isset($_SERVER['HTTP_DNT']) && substr($_SERVER['HTTP_DNT'], 0, 1) === '1');
}

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

firfox 和 safari

下面是firefoxsafari浏览器的设置项截图。

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - donottrack_6_firefox
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-7)

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - donottrack_7_firefox
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-8)

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - donottrack_8_safari
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-9)

ie浏览器

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

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - ie_dnt_00
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-10)

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

苏南大叔:浏览器“不要追踪我”隐私选项 DNT 指标全面解析 - ie10-dnt
浏览器“不要追踪我”隐私选项 DNT 指标全面解析(图11-11)

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   piwik    dnt