技术与创新!五款主流浏览器的秘密
  • 佚名
  • 2009年04月17日 11:22
  • 0

当前,浏览器市场正逐渐升温——各大浏览器厂商都正在更新版浏览器,谷歌也通过Chrome参与到市场角逐中。通过分析IE 8.0、Firefox 3.1、Opera 10和Safari 4的测试代码,检测谷歌的Chrome浏览器,我们发现,这些浏览器都有了许多明显的改进——更好的性能、更注重隐私、集成Web应用、更漂亮的界面等等。

当然,也出现了一些根本性的改变,比如安全功能、网络功能,以及开始流行起来的开发功能——让IT专业人士更好地支持用户或者帮助网站设计者更好的了解网站的功能。

技术与创新!五款主流浏览器的秘密

第一部分:安全

随着网络欺诈、恶意软件和跨站点脚本( XSS )攻击的急剧增加,浏览器厂商开始重新设计其安全功能。最新版本的众多浏览器都包含了一些微妙改进,以进一步增强其安全性。尤其是IE8包括了几个重要的变化,这些变化需要开发人员和管理员在利用这些安全特性之前有足够的了解。

1、IE8采取的跨站点脚本

为了帮助遏制日益猖獗的跨站点脚本攻击,微软为IE 8增加了一个过滤器,XSS安全漏洞中,最常见的一类称为“反射类”,或“类型1”的XSS安全漏洞。IE8中的XSS过滤器就是为了保护普通用户即使在访问的网站存在XSS安全漏洞的情况下,也能避免类型1的XSS攻击。XSS过滤器可以监控浏览器的HTTP请求和响应。如果发现了可疑的XSS攻击脚本,它就会提示用户,并且自动将恶意的脚本过滤为普通的文本信息显示在页面上。

需要强调的是,XSS过滤器的目的是为了阻止最为常见的XSS攻击。它并不能阻止所有类型的XSS攻击,更不意味着WEB开发人员从此就不需要关注其网站是否存在XSS安全漏洞了。基于兼容性的考虑,如果网站的开发人员希望XSS过滤器不对其网站内容检查的话,可以设置以下HTTP头信息:X-XSS-Protection: 0

技术与创新!五款主流浏览器的秘密 XSS过滤器

2、防范Clickjacking

防范Clickjacking(点击劫持)——让用户相信他们所点击的链接是真实合法的。IE 8现在引入了一种新的HTTP标头 (header)X-FRAME-OPTIONS,以规定该页面是否可以被嵌入在iframe里面。如果X-FRAME-OPTIONS的值为DENY,那么IE8就不允许该页面包含在一个框架中;如果其值为SAMEORIGIN,那么只有在顶级浏览内容与包含X-FRAME-OPTIONS的内容不同源时,IE才会阻止该页面。

举例来说,如果http://shop.example.com/confirm.asp包含一个DENY伪指令,那么该页面就无法放入一个子框架中,无论父框架位于何处。相反,如果X-FRAME-OPTIONS伪指令的值为SAMEORIGIN,那么该页面就可以放入到任何来自http://shop.example.com 页面的框架中。

当X-FRAME-OPTIONS阻止显示某页面时,浏览器会弹出一个本地错误页面,说明有关限制,并提供一个链接,该链接将在一个新的窗口中打开框架。当在一个新的窗口中显示,而非在子框架中显示的话,那么页面内容也就无法为点击劫持所用了。

另外一种可以帮助防范clickjacking的方法就是,利用frame busting 的技巧,在页面中添加一段Javascritp:

技术与创新!五款主流浏览器的秘密

它的目的是为了防止页面被iframe引用。但是由于这段代码是JS写的,所以有很多方法可以绕过去,或者是可能被绕过去。如果用HTTP标头,则会更加可靠。

3、跨站点请求伪造

要确保来自Web服务器的请求与之前交付页面的请求保持一致,这也是一种减少Clickjacking和跨站点请求伪造攻击。传统的做法是检查HTTP参考标题,并可以通过使用服务过滤器和应用改变来实现。

有趣的是,使用参考标题是一种相当合理的解决办法,但事实上,它常常会出于保护用户隐私而不被人们看好。

新兴的下一代浏览器会采用一种新型的Origin header,可以提供类似的功能同时无需担忧个人隐私。为了减少CSRF攻击,确定和监测哪些网站和服务可以连接到他们的站点,这对于网站管理员来说是一项十分重要的任务,应该把它和应用开发一视同仁。

4、MIME Smuggling:IE8中的一个开关

IE浏览器中的一个恼人问题是:当微软把问题尽量处理得更简单时,到最后,却给用户和网站所有者带来无尽的安全困扰。

技术与创新!五款主流浏览器的秘密

一个典型的例子就是MIME-sniffing。IE有一个特性,那就是在将一个文件展示给用户之前会首先检查文件的类型,这乍看起来并没什么问题,但实际上这是相当危险的,因为这会允许IE执行图片中的代码,即嵌入在一个图像中的JavaScript代码。引入MIME sniffing功能的初衷是用来弥补Web服务器响应一个图像请求时有可能返回错误的内容类型信息这一缺陷。

IE引入的MIME sniffing或者MIME类型检测方法,都会让IE假定来自web的文件的内容类型就是服务器在HTTP标头中的所声明的内容类型。IE浏览器既不信任文件名扩展部分,也不信任签名,相反,它是通过检查文件开头的256字节内容来确定文件的类型。IE引入MIME sniffing功能的初衷是用来提防服务器给出的错误内容类型指示的,但是攻击者却利用它来规避IE中的安全防御功能,即防止浏览器自动地执行所下载的文件(如hta文件)的那些功能。

微软公司已经认识到这个问题,并计划在IE的新版本中加以修复。IE8不再探测图像,因此,它会忽略嵌入的HTML。现在,IE8的网站管理人员和应用开发者,可以通过在应答中发送X-Content-Type-Options: nosniff来关闭MIME sniffing功能。

5、HTTP-ony cookies

一旦跨站点脚本攻击获得成功,他们都有一个共同的意图:利用cookies劫持会话或者账户登录。Firefox 2/3+ 和IE 6 SP1+版本都支持cookies扩展,这就使得非法的JavaScript也能够读取到被标记为“HTTPOnly”的cookies。

在cookie中设置HTTPOnly标记,可以有效地阻碍跨站脚本攻击中被插入的非法JavaScript,从而避免恶意读取或者更改cookie,也可以减少会话劫持问题的出现。

6、跨域访问:潘多拉的盒子?

传统的AJAX应用程序无法打破同一来源的安全政策。比如,现在你看到的所在页面就是对应一个合法的网站域名:www.it168.com,并不能通过其他的域来访问。这种限制是具体地严格对照域名字符串来实现的。因此,it168.com会自动限制跨域访问。这种限制具有重要的安全意义,尤其是当考虑到动态JavaScrip时候。



文章出处:IT168

文章纠错

  • 好文点赞
  • 水文反对
观点发布 网站评论、账号管理说明
热门评论
查看全部评论
相关报道

最热文章排行查看排行详情

邮件订阅

评论0 | 点赞0| 分享0 | 收藏0