共计 1271 个字符,预计需要花费 4 分钟才能阅读完成。
近期许多网民发现在使用 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 在用户正常使用浏览器时将这些参数不经许可就更来改去,甚至移花接木,包藏什么祸心我们不得而知。但数字公司视用户为禁脔的行径无疑正愈演愈烈,不仅是记录访问数据窥私窃密,而且意图“绑架”用户为肉鸡。为了自己的安全,我们是时候做出选择了!
刚才忘记添加原文网址了