大多数的网络浏览器的设置中有一个“Do Not Track”(DNT 即“不追踪”)设定,让用户能够控制自己的隐私信息被追踪的情况。
但是网站到底是否真的不追踪,还要看网站本身是否响应它
那么,做一个善良的网站,如果用户设置了Do Not Track,那么就保护一下他的隐私吧!
下面这个为JavaScript的代码,如果 navigator.doNotTrack 等于1,那么用户就开启了DNT,不要去运行那些搜集用户信息的脚本了!
if(!navigator.doNotTrack){
//这里面写搜集信息的脚本,如果开启DNT则不执行
}
//这里面写搜集信息的脚本,如果开启DNT则不执行
}
这个为PHP的,通过判断HTTP Header “HTTP_DNT”的值是否为”1″来判定是否开启了DNT:
function get_dnt() {
// returns TRUE if DNT is on and is equal to 1
return (isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] == 1);
$DoNotTrackHeader = "DNT";
$DoNotTrackValue = "1";
$phpHeader = "HTTP_" . strtoupper(str_replace("-", "_", $DoNotTrackHeader));
return (array_key_exists($phpHeader, $_SERVER)) and ($_SERVER[$phpHeader] == $DoNotTrackValue)
}
// returns TRUE if DNT is on and is equal to 1
return (isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] == 1);
$DoNotTrackHeader = "DNT";
$DoNotTrackValue = "1";
$phpHeader = "HTTP_" . strtoupper(str_replace("-", "_", $DoNotTrackHeader));
return (array_key_exists($phpHeader, $_SERVER)) and ($_SERVER[$phpHeader] == $DoNotTrackValue)
}
同理,nodejs的:
var dnt=function(){
return (headers['HTTP_DNT']==1)
}
return (headers['HTTP_DNT']==1)
}
《JS/PHP添加Do Not Track(DNT),保护访客隐私》上的一个想法