什么是同源策略及解决跨域的三种方式

同源策略

1.1.1 所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源。同源策略/SOP(Same origin policy)是一种约定,由 Netscape 公司 1995 年引入浏览器,它是浏览器最核心也最基本的安全功能,现在所有支持 JavaScript 的浏览器都会使用这个策略。如果缺少了同源策略,浏览器很容易受到 XSS、 CSFR 等攻击。

{1} 比如一个web应用,用户访问的页面,处理页面的请求的controller都是在同一个contextPath下的,无论在页面上请求AController还是BController,页面、A、B都是同源的,所处的空间位于同一个contextPath下。

{2} 同源策略是为了安全,确保一个应用中的资源只能被本应用的资源访问。否则,岂不是谁都能访问。

1.1.2 什么是源?

{1} 源(origin)就是协议、域名和端口号。

[1] 若地址里面的协议、域名和端口号均相同则属于同源。

{2} 以下是相对于 http://www.a.com/test/index.html 的同源检测

[1] http://www.a.com/dir/page.html ----成功,port默认是80

[2] http://www.child.a.com/test/index.html ----失败,域名不同

[3] https://www.a.com/test/index.html ----失败,协议不同

[4] http://www.a.com:8080/test/index.html ----失败,端口号不同

[5] http://www.domain.com/a.js http://192.168.4.12/b.js 虽然域名指向的ip和ip相同,也不是同源,因为域名不同。

解决跨域的三种方式

方法1

后台开放限制,优点:方便;缺点:不安全

方法2

JSONP利用script标签的src的属性不受同源策略限制(需要后台配合)

方法3

配置代理

请求本地服务转接远程服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值