python

当前位置:首页 > SEO工具 > 当前文章

SEO工具

百度取消referer中关键词是如何实现的

2020-05-20 195赞 老董笔记
每篇文章努力于解决一个问题!更多精品可移步文章底部。

  Referer是http协议中header头的一部分,不明白的话可以查看http协议讲解,referer主要方面在统计工具中查看搜索关键词,当然referer是可以被伪造的。也就是说统计工具的数据也是可以刷出来的。

	  各位亲爱的网站管理员:
	  百度已实现全站https化,在BAT中率先完成全站加密,以推动网络环境安全。为了进一步保护用户隐私,防止第三方窃听和篡改,百度已于6月25日正式取消referer中关于关键词的显示,更好的保护站点流量关键词数据信息,令站点数据更加私密化。站长需要获得网站流量关键词时,仍然可以使用百度站长平台提供的流量与关键词工具或者百度统计相关功能进行查询。(时间:2015年6月28日 作者:百度站长平台)

  百度取消referer中的关键词是如何实现的呢?通过fiddler抓包可以看出来。

  如下:在百度中搜索一个关键词,然后在搜索结果页点击进入对应网站,这个过程通过fiddler抓包可以看到百度是增加了一个中间页,点击搜索结果页的链接点击会先进入这个中间页,这个中间页是一串js代码,js代码功能是直接打开目标网页,这样referer信息后续就无法获取了。



  js代码做了兼容处理,正常是通过window.location.replace函数来打开网页的,如果浏览器不支持js则通过meta标签的refresh属性来实现。

<meta content="always" name="referrer">
<script>
try {
    if (window.opener && window.opener.bds && window.opener.bds.pdc && window.opener.bds.pdc.sendLinkLog) {
        window.opener.bds.pdc.sendLinkLog();
    }
} catch(e) {};
var timeout = 0;
if (/bdlksmp/.test(window.location.href)) {
    var reg = /bdlksmp=([^=&]+)/,
    matches = window.location.href.match(reg);
    timeout = matches[1] ? matches[1] : 0
};
setTimeout(function() {
    window.location.replace("https://nj.5i5j.com/rent/xiaguan/")
},
timeout);
window.opener = null; 
</script>

<noscript><META http-equiv="refresh" content="0;URL='https://nj.5i5j.com/rent/xiaguan/'"></noscript>

  百度云现在开放了referer api功能,可以通过 百度refer中的eqid参数来获取百度关键词。 详见:https://cloud.baidu.com/doc/RefererAPI/ProductDescription.html

文章评论

百度取消referer中关键词是如何实现的文章写得不错,值得赞赏