同源策略同源策略限制来自某个源的文档或者脚本与另一个源的资源交互。同源策略用来阻止一些CSRF攻击。定义协议+端口(如果指定)+主机都相同。继承源来自about:blank,javascript:和data:的URL内容继承加载这个文档的URL的源,因为它自身并没有关于源的信息。IE特例IE有两个关于同源策略的例外:信任区域(Trust Zones):如果两个域名高度互信,比如同一个公司域名,不使用同源策略。端口:IE的同源策略不考虑端口。变更源更改页面的源受到限制。脚本可以把document.domain设成当前domain的子集。之后就以此可以作为同源检查的源。例如,页面http://store.company.com/dir/other.html上的脚本可以这样:document.domain = "company.com"注意必要时要指定端口号,否则会被赋值成null。让子域安全访问父域必须将两者的document.domain设置为相同。跨域网络访问同源策略控制两个不同源的交互,当使用XMLHttpRequest或者img标签时。这些交互分为3类:跨域写入通常是允许的。例如链接(links),重定向(redirects)和表单提交。某些罕见的HTTP请求需要preflight。跨域嵌入通常是允许的。例子如下跨域读取通常不允许,但通常通过嵌入泄漏了不可读内容。例如你可以读到嵌入图像的长宽,嵌入脚本的行为,或者嵌入资源的可访问性。以下是一些跨域嵌入的例子:通过嵌入的JS。语法错误信息只能在同源脚本中捕捉到。(然我并不理解,只看到浏览器可以捕捉到引入脚本的语法错误)通过
嵌入的CSS。由于CSS松散的语法规则,同源策略要求跨域CSS有正确的Content-Type头。各个浏览器对跨域CSS的限制都不同。通过
![]()
嵌入的图像,支持png,jpeg,gif,bmp,svg。。。格式通过