第二章 浏览器安全
2.1同源策略(Same Origin Policy):是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能都可能会受到影响。可以说WEB是构建在同源策略的基础上,浏览器只是针对同源策略的一种实现。很多时候浏览器的同源策略是隐性的、透明的。
浏览器的同源策略,限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。来自不同origin的对象无法互相干扰。
影响域的因素:host(域名或IP地址,如果是IP地址则看作一个根域名)、子域名、端口、协议
在浏览器中,<script>、<img>、<iframe>、<link>等标签都可以跨域加载资源,而不受同源策略的限制。这些带“src”属性的标签每次加载时,实际上是由浏览器发起发起了一次GET请求。不同于XMLHttpRequest的是,通过src属性加载的资源,浏览器限制了JavaScript的权限,使其不能读、写返回的内容
XMLHttpRequest受到同源策略的约束,不能夸域访问资源,在AJAX应用的开发中尤其需要注意这一点。如果XMLHttpRequest能够跨域访问资源,则可能会导致一些敏感数据泄露,比如CSRF的token,从而导致安全问题。<跨域访问标准:通过目标域返回的HTTP头来授权是否允许跨域访问>
浏览器的同源策略是浏览器安全的基础(还需认真理解)
2.2 浏览器沙箱
挂马:在网页中插入一段恶意代码,利用浏览器漏洞执行任意代码的攻击方式,是浏览器需要面对的一个主要威胁。
对抗:1Windows系统中浏览器结合DEP、 ASLR、 SafeSEH等,浏览器的多进程架构(Chrome是第一个:浏览器进程、渲染进程、插件进程、扩展进程)
IPC channel会进行一些安全检查
浏览器所加载的一些第三方插件往往不受SandBox管辖,Flash、Java、PDF、.Net Framework在近年来都成为浏览器攻击的热点。
2.3 恶意网址拦截<目前都是基于“黑名单”>
恶意网站识别模型存于服务器,并向客户端推送黑名单
除了恶意网站黑名单拦截功能外,主流浏览器都开始支持EV SSL证书 (Extend Validation SSL Certificate),以增强对安全网站的识别。
2.4 高度发展的浏览器安全
IE8的XSS Filter
Firefox 4的CSP (Content Security Policy): 服务器返回一个HTTP头,并在其中描述页面应该遵守的安全策略
扩展和插件极大地丰富了浏览器的功能,但安全问题也随之而来,除了插件可能存在漏洞外,插件本身也可能会有恶意行为