Chrome 中 5 大安全增强

  • Abel Avram
  • 马国耀

2010 年 2 月 8 日

话题:安全架构Chrome语言 & 开发

为了让浏览更安全,Google 最近为 Chrome 增加了 5 项安全增强:跨文档消息递送、Strict-Transport-Security、Origin、X-Frame-Options 以及反射 XSS 过滤器。其中某些特性在其他浏览器中已经实现或即将实现。

消息递送

出于安全和隐私的原因,浏览器禁止隶属于不同域的文档之间的交互。HTML5 引入了一个新方法,称为postMessage(),该方法允许独立的 iFrame 中的文档之间的交互。该方法签名如下:

window.postMessage(message, [ports,] targetOrigin)

这样,浏览器就即能获得 iFrames 提供的安全又能实现跨文档的交互。

Strict-Transport-Security

HTTPS 是用于连接网站并传输需要被保护的敏感信息的一种安全的方式。但是浏览器并非总是强制使用 HTTPS,比如,如果某网站提供的安全证书有问题,那么浏览器会发出一个警告,而用户可以继续在半安全的连接上浏览该网站。PayPal 已经成功地建议向 HTML5 的规范中引入 Strict-Transport-Security (STS)这个 HTTP 头。当服务端返回了包含 STS 的 HTTP 头时,实现了该特性的浏览器应该:

  1. 当任何安全传输错误或警告产生时(包括由网站使用自签名的证书而引起的),UA [User Agent] 结束所有的安全连接。

  2. 在解引用之前,UA [User Agent] 将指向STS 服务器的不安全 URI 引转换成 安全的 URI 引用。

在 Web 服务器或用户代理认为安全必要时,该特征强制使用 HTTPS。在网络繁忙的场所使用无线连接之上的不安全的 HTTP 连接为窃听打开了大门,而结果就可能会导致个人访问网站的私有信息被窃取。STS 可以保护其不被窃取。

目前,Paypal 实现了该特征。Chrome 4 也实现了 STS,此外还有 Firefox 的安全插件 NoScript,它也拥有相同的功能。FireFox 自身的 STS 实现正在进行当中。

Origin

跨站请求伪造(Cross-site request forgery 或 CSRF) 攻击的方式是通过在不知不觉中欺骗一个网站让其向 另一个网站提供私密信息。Origin是 HTML 5 中包含的一个 HTTP 头,就可以通过让用户代理去指定请求源的方式来解决这个问题。当一个恶意网站将请求重定向到另一个网站时,浏览器将会在该请求中包含“Origin”头,目标网站将会根据该“Origin”是否可信来决定是否执行相应的操作。

Google 和Mozilla都在他们各自的浏览器中实现该特征。W3C 的 规范提供了更多的细节信息。

X-Frame-Options

另一个 HTTP 头字段 X-Frame-Options 可被用于防范ClickJacking攻击。这类攻击是通过在网页的输入控件上覆盖一个不可见的框(frame)的手段完成的,当用户点击该控件时,他实际上是在其之上的不可见的框(frame)中输入。网站可以通过指定 “X-Frame-Option: deny” 的方式防范 ClickJacking 攻击,支持该特性的浏览器会决绝呈现框(fram)中的内容从而阻止了 ClickJacking 攻击。

IE 8 是第一个实现该特性的浏览器,Chrome 和 Safari 继之。

反射 XSS 过滤器

跨站脚本攻击(Cross-site scripting 或 XSS)是又一利用安全弱点进行攻击的手段,也是最难对付的攻击之一。IE 8和 Firefox 的NoScript控件中有反射 XSS 过滤器,该特性是被 Google 添加到WebKit并用在 Chrome 4 中。该过滤器校验将要运行的网页中的脚本是否也存在于请求该页的请求信息中,如果是,则极可能意味着该网站正在受到该脚本的攻击。


查看英文原文:5 Security Enhancements in Chrome

安全架构Chrome语言 & 开发