同域策略:
同源策略的概念:
同域策略是计算机web应用安全模型中的重要概念。这个策略允许同一个站点(协议、 主机、 端口 三部分组成)中的脚步互相访问dom等,但是阻止来自不同域的 脚步执行。
从不同域获取的文档互相隔离。不能跨域操作dom、 xmlHttpRequest、websocket.
同源策略的意义:
当今服务器广泛依赖cookie来维护认证用户信息、分发敏感信息、进行状态改变。
通过客户端无关站点的严格隔离来保证信息不丢失、不泄密、完整性。
跨域决定规则:
域决定规则图示:(基本URL:"http://www.example.com/dir/page.html")
同域策略crack:
对于有多个子站的网站来说,同域策略太过拘束。
有几种方案可以绕过同域策略的限制。
跨域方案:
方案列表:
1:document.domain
2:跨域资源分享(Cross-Origin resource sharing)
3:跨文档消息
4:JSONP
方案总结:
跨文档dom操作:
>ie8 :优先使用 跨文档消息 (window.postMessage)。
ie6 - 8:
iframe相关方案:
1: window.name
2m 数据量限制。
2: window.navigator
注册事件传递消息。(推荐)
3: iframe的 window.location
1:轮询
跨域文档可以互相访问iframe.contentWindow.location
设置 location上面的hash来 设置发送消息。
iframe内部轮询(polling),获取信息。
2:事件
发送iframe设置接收iframe的宽高。
接收iframe设置 onresize 事件,获取消息。
相关资源:
同域策略:http://en.wikipedia.org/wiki/Same_origin_policy
跨域iframe:
淘宝最新的window.navigator 跨域方案