同源策略及跨域方法

  • 同源策略
    • documentdomain
    • windowname
    • locationhash
    • HTML5的postMessage方法
    • JSONP
    • CORS
      • 简单请求
      • 非简单请求
    • 参考文章


同源策略

同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准。它最早出自Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载。

同源指的是:同协议,同域名和同端口。

非同源会有以下种行为受到限制:

  • Cookie、LocalStorage 和 IndexDB 无法读取。
  • DOM 无法获得。
  • AJAX 请求不能发送。
  • 浏览器中不同域的框架之间不能进行js的交互操作。
  • 不同的框架之间是可以获取window对象的,但却无法获取相应的属性和方法。

常用的同源策略的规避方法,即常用跨域方法如下:

document.domain

只要将同一域下不同子域的document.domain设置为共同的父域,则可以访问对应window的各种属性和方法。
例如:www.example.com父域下的www.lib.example.com和www.hr.example.com两个子域,将对应页面的document.domain设为example.com即可共享cookie等资源。

另外,服务器也可以在设置Cookie的时候,指定Cookie的所属域名为一级域名,比如.example.com。这样,二级域名和三级域名不用做任何设置,都可以读取这个Cookie。

Set-Cookie: key=value; domain=.example.com; path=/

使用js来获取不同子域的iframe中的内容,本例中当前页域名为:http://example.com/a.html


                    
                    

你可能感兴趣的:(js)