同源策略
同源策略是浏览器最核心最基本的安全功能,即同源策略是浏览器端的行为
什么是同源
-
源(origin): 源表示的是 协议、域名、端口号
-
同源需要保证两个URL的 协议、域名、端口号 一致
URL | URL | 结果 | 原因 |
---|---|---|---|
http://ddmfhm.com/outer.html | http://ddmfhm.com/inner/inner.html | 同源 | 路径不同也视为同源 |
http://vue.ddmfhm.com/index.html | http://react.ddmfhm.com/index.html | 不同源 | 域名不同(二级域名也要相同) |
http://ddmfhm.com/index.html | https://ddmfhm.com/index.html | 不同源 | 协议不同 |
http://ddmfhm.com:81/index.html | http://ddmfhm.com/index.html | 不同源 | http协议不写明端口号,默认80端口 |
同源策略的影响
- cookie、localStorage 和 IndexDB 无法读取
- 但是浏览器允许一级域名相同而二级域名不同的网页使用
document.domain
共享 cookie
- 无法获取dom元素
-
网页中使用
ifram
标签建立的窗口,如果不是同源,则无法获取ifram
窗口内的 dom 元素 -
window.open
打开的新页面也无法读取到 dom 元素
- 无法发送ajax
跨域资源访问
如果请求的数据与我们所在页面的源不同。则会产生跨域请求