SOP(Some Origin Policy)

同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。

非同源的限制:
  • Cookie,LocalStorage 和 IndexDB 无法读取。
  • DOM 无法获得。
  • AJAX 请求不能发送(防止惡意網站從其他網站上讀取機密信息,同時也阻止網絡內容合法地閱讀其他網站提供的信息;防止带凭证进行非法读取(CSRF))。

js 文件跨域时,异常内容将被隐藏,只能获取到一个简单的 Script Error 信息。解决方案:
  • crossorigin 属性
  • 服务器上添加 Access-Control-Allow-Origin: *

data: URLs get a new, empty, security context.

在跨域访问的时候,可以自己变更域以符合同源策略,脚本可以设置 document.domain 的值为当前域的一个后缀,如果这样做的话,短(1级相对二级)的域将作为后续同源检测的依据。不能变更成长域。而且必须带端口号,否则覆盖成null。
同源策略控制了不同源之间的交互,例如在使用XMLHttpRequest 标签时则会受到同源策略的约束。交互通常分为三类:
  • 通常允许进行跨域写操作(Cross-origin writes)(即request)。例如链接(links),重定向以及表单提交。特定少数的HTTP请求需要预请求
  • 通常允许跨域资源嵌入(Cross-origin embedding)。
  • 通常不允许跨域读操作(Cross-origin reads)(读response)。但常可以通过内嵌资源来巧妙的进行读取访问。例如可以读取嵌入图片的高度和宽度,调用内嵌脚本的方法,或availability of an embedded resource