跨源资源共享(CORS)

一、跨源的定义
一个“源”有三部分组成:协议、域名、端口。任一部分不一致即为跨源。比如:(http,example.com,80)和(https,example.com,443)就是不同的源。
 
二、同源策略
XHR的早期版本限制应用只能执行同源请求,即新请求的来源必须与旧请求的来源一致,如果后续请求不同源,浏览器就拒绝该XHR请求并报错。浏览器对首部的保护:
XHR API支持应用添加自定义的首部(通过setRequestHeader()方法),但有些首部是应用代码不能设定的:
1、Accept-Charset、Accept-Encoding、Access-Control-*
2、Host、Upgrade、Connection、Referer、Origin
3、Cookie、Sec-*、Proxy-*以及其他首部
浏览器会拒绝对不安全首部的重写,以此保证应用不能假扮用户代理、用户或者请求来源。保护首部 Origin很重要,这是对所有XHR请求应用“同源策略”的关键。
 
三、CORS 的应用场景
如果服务器想给另一个网站中的脚本提供资源怎么办?CORS提供了安全的 选择同意机制。
 
四、CORS底层处理机制
跨源请求发出去之后,浏览器 自动追加受保护的Origin HTTP首部,包含发出请求的来源。相应的远程服务器检查Origin首部,决定是否接受该请求,如果接受就 返回Access-Control-Allow-Origin响应首部
 
五、CORS安全措施
CORS请求会省略cookie和HTTP认证等用户凭证
客户端被限制只能发送“简单的跨域请求”包括只能使用特定的请求方法(GET、POST和HEAD)
要启用cookie和HTTP认证,客户端必须在发送请求时通过XHR对象发送额外的属性(withCredentials),而服务器也必须以适当的首部( Access-Control-Allow-Credentials
 
六、CORS在139邮箱文件上传中的应用
 
七、参考资料

转载于:https://www.cnblogs.com/hellohuman/p/3952298.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值