闲来无事,分析下百度是如何实现取消referer关键词显示的

还是在今年6月底,百度就放出全面取消referer关键词显示的通知,听说目的是为了保护用户隐私和站点流量关键词数据。

闲来无事,分析下百度是如何实现取消referer关键词显示的具体公告如下:

各位亲爱的网站管理员:

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

然而并没有什么L用,本来就不知道谁在百度搜索了什么见不得人的事情,隐藏关键词那不是脱了裤子放屁么?

另外,保护站点流量关键词数据,这一点我倒是觉得很有用,省的某些人总是去瞄瞄谁谁谁的站点的哪篇文章有个很牛逼的关键词,然后吧唧就复制粘贴了。不过,这个做法还是无法完全杜绝,为啥?因为你百度还有一个百度指数的功能!别人拿到高指数的词一搜就知道那个谁谁谁的文章排第一了?不过只是增加了麻烦的程度而已!

说个不好意思的事情,这公告刚出来的时候,我其实是没看懂是什么意思的。。。去认为从一个页面的链接点击后跳到另一个页面难道不会产生referer?这不科学啊!然后我就没在意了。。。

直到前不久,偶然发现张戈博客原创作品【搜索来路欢迎框】不提示关键词了:

闲来无事,分析下百度是如何实现取消referer关键词显示的

本以为是我代码BUG了,于是亲自输出了一下referer看了下,发现我写的代码还是可以拿到referer,可惜referer里面的关键词wd的值是空的,比如:

https://www.baidu.com/link?url=dEvj7DE-rHNYgoNrzCSrgBLAVrWns06Ub1h8DjGa5mv-gSonnZp9VCYaDBKRmvDV&wd=&eqid=c1a3fa880009ab000000000555fce97f

这时候又勾起了我的兴趣,了解 referer 的朋友都知道,当我们点击A页面中的链接跳转到B页面时,B页面里面 referer 值就是A页面地址。

也就是说,我在百度搜索张戈博客,那么页面地址应该是:

https://www.baidu.com/s?wd=张戈博客

即A页面地址,如果我们从这个搜索结果中点开第一个链接来到张戈博客,那么产生的 referer 应该就是上面这个搜索地址才对!百度是如何做到隐藏这个关键词的呢??

前几天,在写一个爬虫脚本的时候,破天荒的试了下百度搜索结果中的链接,终于搞懂了这其中的奥妙之处,感觉挺有意思,所以就把其他原创干货继续压在草稿箱等发霉,先把这个发现分享下。

就以张戈博客这个关键词搜索出来的地址为例吧!百度搜索张戈博客后的结果如下图所示:

闲来无事,分析下百度是如何实现取消referer关键词显示的

接着,我试着在Linux下使用curl请求,发现如下图所示:

闲来无事,分析下百度是如何实现取消referer关键词显示的

把结果格式化了下:

然后我就明白了百度是如何做到隐藏关键词的了。

比较简单,但很巧妙的做法:百度现在的搜索结果链接不再直接跳转到目标页面,而是通过了一个隐藏的中转页面。以上代码的大概功能就是,如果浏览器支持Javascript,那么将通过其中的js函数跳转到目标页面,如果浏览器不支持Javascript,那么也能通过最后的META标签让浏览器实现跳转。

由于有了这个中间页面,那么关键词也就断章了,因为真正有关键词的 referer 只能在中间页面这取得,目标页面取得的 referer 则是中间页面的地址,是没有关键词的!

百度还真是用心良苦啊!...

还好我写的【搜索来路欢迎框】是兼容空关键词的,否则显示的就是 null 了。

既然知道有这么个巧妙的做法,那我们在某些场景是否可以借鉴一下呢?我想肯定是用得到的,只是你没遇到而已。。。比如,你的某页面偷偷链接了某站的地址,又不想让站长知道?不过这也是够无聊的了,哈哈哈!

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:11   其中:访客  11   博主  0

  1. 大漩涡 2 来自天朝的朋友 Safari浏览器  Android 4.4.4 MI 3W Build/KTU84P 湖北省武汉市 联通

    好像没有神马卵用啊

  2. 南国掌柜博客 1 来自天朝的朋友 谷歌浏览器 Windows 7 湖北省 电信

    连我这种小白都看懂了…

  3. 瑾瑜 4 来自天朝的朋友 谷歌浏览器 Windows 10 安徽省合肥市 中国科学技术大学

    张哥还是那么爱钻研~

  4. 香港虚拟主机 3 来自天朝的朋友 谷歌浏览器 Windows 7 重庆市 电信

    百度实现取消referer关键词显示,原来是这样实现的,自从百度取消referer关键词显示,感觉第三方都没啥作用了

  5. 微商 3 来自天朝的朋友 谷歌浏览器 Windows 7 四川省成都市 电信

    一如既往的牛逼

  6. 拉卡拉 0 来自天朝的朋友 搜狗浏览器 Windows 7 北京市 电信

    百度实现取消referer关键词显示,原来是这样实现的,自从百度取消referer关键词显示,学习了

  7. 邢台网站建设 3 来自天朝的朋友 谷歌浏览器 Windows 7 河北省邢台市桥东区 联通

    看了这个文章,楼主的解释,感觉很有价值,请问下张戈大神,noscript中的那种跳转,如果弄到站内首页做功能跳转用的话,百度或者其他搜索引擎会不会认为不好等问题?如果不会这么判定,我就把自己的站里加个单独的说明页面去,介绍如何开启script的方法,感觉很实用,不过一般也用不到这个页面,不过本着折腾的想法,还是想讨教下是否会判定不好?

  8. junze 2 来自天朝的朋友 谷歌浏览器 Mac OS X 10_10_4 北京市朝阳区 铜牛国贸CBD数据机房(光华路15号院2号楼铜牛国际大厦B1)

    很不错的分享

  9. 小C博客 4 来自天朝的朋友 QQ浏览器 Windows 7 浙江省杭州市 电信

    这都被你研究出来了!!6666

  10. zz618 0 来自天朝的朋友 谷歌浏览器 Windows 7 河南省郑州市 电信

    现在是不是无法获取了,大神

  11. 本质游戏 1 来自天朝的朋友 QQ浏览器 Windows 10 辽宁省本溪市 电信

    对于我想刷真实流量,如何伪造中间页呢?

加载中,请稍候...