近期许多网民发现在使用360浏览器访问网站时会出现链接跳转失灵或者刚刚填写好的表单却被清空的现象。技术监测显示这是因为360浏览器在升级后随机篡改HTTP Referer,干扰用户浏览网站的访问序列,导致网站为用户提供的服务中断,带来不便。
什么是HTTP Referer?简而言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些公开信息用于响应访问需求。Referer被篡改固然导致不便,但更需要大家警惕的是360此举即意味着将所有网银用户暴露在CSRF攻击(Cross-site request forgery跨站请求伪造)面前。
举个例子。当你在360buy完成购物按下付款按钮,你需要登录到网银,通过对银行网站发送一个请求来完成转账。这时候,如果有黑客瞄上了你,使用CSRF的攻击方式,而你又恰巧刚进行过转账操作不久,浏览器与银行网站之间的会话还没有过期,那悲剧就很可能会发生,黑客将轻松的把你账户里的钱据为己有。
当前防御CSRF攻击最方便的方法就是验证Referer值。让我们回到上面说的那个例子来:银行对转账请求验证Referer值,当发现Referer值不是来自银行自己的网站时,将会拒绝转账的请求,以保证账户的安全。
说到这里,聪明的你是不是隐约觉得有些不对头了?是的。如果Referer值被伪装成银行网站的话,那转账请求就会被通过,你账户里的钱就会变成黑客的囊中之物。
因为Referer值是由浏览器提供的,使用验证 Referer 值的方法防御CSRF攻击,其实就是把安全性都依赖于浏览器来保障。当你使用的浏览器,Referer值能被随意更改,你对自己钱包的归属还那么有信心吗?
与HTTP Referer一同被360搞得“不明不白”的还有User-Agent。
所谓User-Agent,简单的说就是客户端浏览器等应用程序使用的一种特殊的网络协议,在每次浏览器进行HTTP请求时发送到服务器,服务器就知道了用户是使用什么浏览器来访问。
若想知道当前浏览器的User Agent信息,大家可以在地址栏直接输入 javascript:alert(navigator.userAgent); 回车即可看到。目前360浏览器会频繁更改自身的User Agent,伪装成苹果safari或微软IE。此举不仅导致网站不能正确识别用户,而且还使得许多网站的页面因为对浏览器识别错误而呈现错乱。



正常显示的360浏览器UA信息有“360SE”字样



不定期伪装成IE9或者Safari的360浏览器

360在用户正常使用浏览器时将这些参数不经许可就更来改去,甚至移花接木,包藏什么祸心我们不得而知。但数字公司视用户为禁脔的行径无疑正愈演愈烈,不仅是记录访问数据窥私窃密,而且意图“绑架”用户为肉鸡。为了自己的安全,我们是时候做出选择了!