Same origin policy

谁提出的?

远景netspeace公司提出的著名安全策略

是谁来执行同源策略的?

浏览器

同源策略做了什么?

不接收http的响应,即请求发送了,服务器响应了,但是无法被浏览器接收

效果:

1.无法利用js 对不同源的cookie,localStorage,indexDB 进行读取。

防止恶意的js对其它网站的cookie进行读取

2.无法用js 获取非同源的DOM

如果可以获取,可以通过iframe打开任意网站,获取网页上的信息

3.无法用js 发送非同源的 ajax 请求

例如:
假设有一个黑客叫做小黑,他从网上抓取了一堆美女图做了一个网站,每日访问量爆表。
为了维护网站运行,小黑挂了一张收款码,觉得网站不错的可以适当资助一点,可是无奈伸手党太多,小黑的网站入不敷出。
于是他非常生气的在网页中写了一段js代码,使用ajax向淘宝发起登陆请求,因为很多数人都访问过淘宝,所以电脑中存有淘宝的cookie,不需要输入账号密码直接就自动登录了,然后小黑在ajax回调函数中解析了淘宝返回的数据,得到了很多人的隐私信息,转手一卖,小黑的网站终于盈利了。
如果跨域也可以发送AJAX请求的话,小黑就真的获取到了用户的隐私并成功获利了!!!

同源策略对前端带来的限制

1、前后端分离,前端和后端的资源不在同一台服务器,后端给前端提供接口。
2、文件资源和代码资源不在同一文件夹下或者同一台服务器上时,需要通过ajax请求获取不同源下的资源。
3、电商网站想通过用户浏览器加载第三方快递网站的物流信息。
4、子站域名希望调用主站域名的用户资料接口,并将数据显示出来。

由于同源策略对资源的有了限制,所以有了跨域请求的实现方案