- 在没有保障的 Web 世界中,我们是没有隐私的,因此需要安全策略来保障我们的隐私和数据安全
- 如果两个 URL 的协议、域名和端口都相同,我们就称这两个 URL 同源
- 主要作用:
- DOM 层面:同源限制了来自不同源的 JavaScript 脚本对当前 DOM 对象读和写的操作。
- 数据层面:同源策略限制了不同源的站点读取当前站点的 Cookie、IndexDB、LocalStorage。
- 网络层面:同源策略限制了 XMLHttpRequest 等方式将站点的数据发送给不同源的站点。
- 缺点:同源策略强迫所有资源来自于同一个源,也就是所有资源部署在同一个服务器上。显然不符合互联网的特性,我们必须通过跨域来引用不同来源的资源,比如各种统计平台,但是也带来了 XSS 攻击 和 CSRF 攻击。