浏览器不仅能呈现画面,它还制定了一些安全策略,这些策略有效地保障了用户计算机的本地安全与Web安全。
同源策略:不同域的客户端脚本在没明确授权的情况下,不能读写对方的资源;
1. 不同域或同域,同域要求两个站点同协议,同域名,同端口
2.客户端脚本
- 主要指Javascript与Actionscript都遵循的ECMAScript脚本标准,Flash提供的通信接口,使得这两个脚本语言可以很方便地互相通信。客户端的攻击几乎都是基于这两个脚本语言进行的,当然JavaScript 是最广泛的。
3.授权
- 一般情况下,看到这个词,我们往往会想到服务端对客户端访问的授权。客户端也存在授权现象,比如,HTML5新标准中提到关于AJAX跨域访问的情况,默认情况下是不允许跨域访问的,只有目标站点明确返回HTTP响应头:Access-Control-Allow-Origin: 那么 站点上的客户端脚本就有权通过AJAX技术对目标网站上的数据进行读写操作。(AJAX也是黑客进行Web客户端攻击常用的技术,这样便可以悄无声息地在浏览器后台进行)
4.读写权限
- Web上的资源有很多,有得只有读权限,有得同时拥有读和写的权限,比如:HTTP请求头里的Referer(表示请求来源)只可读,而document.cookie则具备读写权限。这样区分也是为了安全上的考虑。
5.资源
- 这是一个很广泛的概念,只要是数据,都可以认为是资源。同源策略里的资源是指Web客户端的资源,一般来说,它主要包括:HTTP消息头,整个DOM树,浏览器存储(如:Cookies,Flash Cookies, localStroage等)。客户端安全威胁都是围绕这些资源进行的。(DOM的出现大大方便了JavaScript进行读写操作,Web客户端的攻击也几乎离不开DOM操作)