浏览器的同源策略
计算机的本地和web是不同的层面,web运行在浏览器上,而被限制了直接进行本地数据的读写
同源策略是对浏览器的一个重要的安全策略,是众多安全策略的一个,是web层面上的策略。它限制了非同源的请求,如果没有同源策略,不同源的数据和资源就能相互访问。
同源策略规定:不同域的客户端脚本在没明确授权的情况下,不能读写对方的资源
-
不同域
指的是协议、域名、端口
-
客户端脚本
客户端脚本主要是指JavaScript、ActionScript(flash)的脚本语言,以及JavaScript与AsctionScript都遵循的ECMAScript脚本标准
-
授权
一般情况下,看到这个词,我们往往会想到服务端对客户端访问的授权。客户端也存在授权现象,比如:HTML5新标准中提到关于AJAX跨域访问的情况,默认情况下是不允许跨域访问的,只有目标站点明确返回HTTP响应头: Access-Control-Allow-origin
AjAx让数据在后台进行异步传输,常见的使用场景有:对网页的局部数据进行更新是,不需要刷新整个网页,以节省带宽资源。AJSAX也是黑客进行web客户端攻击常用的技术 -
读写权限
Web 上的资源有很多,有的只有读权限,有的同时拥有读和写的权限。比如:HTTP请求头里的Referer(表示请求来源)只可读,而document.cookie则具备读写权限。这样的区分也是为了安全上的考虑。
-
资源
只要是数据就可以认为是资源。同源策略里面的资源指的是web客户端的资源,包括HTTP消息头、整个DOM树、浏览器存储等。客户端安全威胁都是围绕这些资源进行的。