同源策略与跨源策略

1. 同源策略

同源策略是指在Web浏览器中,允许某个网页脚本访问另一个网页的数据,但前提是这两个网页必须有相同的URI、主机名和端口号,一旦两个网站满足上述条件,这两个网站就被认定为具有相同来源。

此策略可防止某个网页上的恶意脚本通过该页面的文档对象模型访问另一网页上的敏感数据。 同源策略对Web应用程序具有特殊意义,因为Web应用程序广泛依赖于HTTP cookie来维持用户会话,所以必须将不相关网站严格分隔,以防止丢失数据泄露。

值得注意的是同源策略仅适用于脚本,这意味着某网站可以通过相应的HTML标签,访问不同来源网站上的图像、CSS和动态加载脚本等资源。而跨站请求伪造就是利用同源策略不适用于HTML标签的缺陷。 ​

2. 如何进行跨域

(1)CORS

CORS的本质:

a. 简单请求

A 通过响应头告诉浏览器,我愿意共享给 B

b. 复杂请求

为了防止 POST/PUT/PATCH 请求对数据造成影响

浏览器会先发 OPTIONS 请求,问 A 接不接受 POST/PUT/PATCH

如果接受,浏览器才会发真正的请求

比如 post 请求的功能是打款给他人

(2)JSONP

a. 取巧

由于 <script> 标签不受同源策略约束,可以请求任意 JS

所以后端把数据直接放在 JS 里了 对回调的使用是 JSONP 的点睛之笔

b. 与 JSON 的关系

毫无关系

(3)反向代理

步骤

假设 a.com:8888 想把 GET /data 共享给 b.com:7777

1. b.com 后端提供一个 /data(Nginx 配置如右)

2. b.com 前端通过 AJAX 访问 b.com/data

3. b.com/data 向 a.com/data 发请求,得到响应之后给 b.com 的前端

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值