浏览器的同源策略以及如何解决跨域问题
什么是同源策略?有什么作用?
同源策略限制了从同一个源加载的文档或者脚本如何与另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制
什么是源?
简单的来说,如果两个页面的协议,端口和域名都相同,则这两个页面具有相同的源
下表给出了相对http://www.example.com/dir/page.html
同源检测的示例:
URL | 结果 | 原因 |
---|---|---|
http://www.example.com/dir2/other.html |
成功 | |
http://www.example.com/dir/inner/another.html |
成功 | |
https://www.example.com/secure.html |
失败 | 不同协议 ( https和http ) |
http://www.example.com:81/dir/etc.html |
失败 | 不同端口 ( 81和80) |
http://example.com/dir/other.html |
失败 | 不同域名 ( www.example.com和example.com ) |
IE例外
涉及到同源策略时,Internet Explorer有两个主要不同点
授信范围(Trust Zones):两个相互之间高度互信的域名,如公司域名(corporate domains),不遵守同源策略的限制。
端口:IE 未将端口号加入到同源策略的组成部分之中,因此
http://company.com:81/index.html 和http://company.com/index.html 属于同源并且不受任何限制。
<– 关于如何解决跨域问题正研究中–>