技术与创新!五款主流浏览器的秘密
当然,也出现了一些根本性的改变,比如安全功能、网络功能,以及开始流行起来的开发功能——让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:
<script type="text/javascript"> if (top!=self) top.location.href=self.location.href;</script> |
它的目的是为了防止页面被iframe引用。但是由于这段代码是JS写的,所以有很多方法可以绕过去,或者是可能被绕过去。如果用HTTP标头,则会更加可靠。
3、跨站点请求伪造
要确保来自Web服务器的请求与之前交付页面的请求保持一致,这也是一种减少Clickjacking和跨站点请求伪造攻击。传统的做法是检查HTTP参考标题,并可以通过使用服务过滤器和应用改变来实现。
有趣的是,使用参考标题是一种相当合理的解决办法,但事实上,它常常会出于保护用户隐私而不被人们看好。
新兴的下一代浏览器会采用一种新型的Origin header,可以提供类似的功能同时无需担忧个人隐私。为了减少CSRF攻击,确定和监测哪些网站和服务可以连接到他们的站点,这对于网站管理员来说是一项十分重要的任务,应该把它和应用开发一视同仁。