同源策略
同源策略由Netscape提出的一个著名的安全策略。
现在所有可以支持JavaScript的浏览器都会使用这一策略。
同源
同源即 同协议,端口,域名
同源策略的限制
- 不能获取不同源的cookie,LocalStorage 和 indexDB
- 不能获取非同源的DOM
- 不能发送非同源的ajax请求。(准确说应该是可以向非同源的服务器发起请求,但是返回的数据会被浏览器拦截)
同源策略由浏览器执行
所有的限制都是因为浏览器的作用,这是因为浏览器为保护用户隐私而才去的措施。
为什么要有同源策略
采用同源策略主要是因为安全。若非同源下的cookie等隐私数据可以被随意获取,非同源下的DOM可以的随意操作,ajax可以任意请求的话,用户的各种隐私势必泄露。
再来细说一下同源策略的限制
- 不能获取不同源的cookie,LocalStorage 和 indexDB
这个东西很好理解,是为了防止恶意网站获取用户其他网站的cookie数据
- 不能让获取非同源的DOM
如果没有这一条,恶意网站可以通过iframe打开银行页面,可以获取dom就相当于可以获取整个银行页面的信息。
- 不能发送非同源的ajax请求。
看个大佬写的小案例 链接