"); //-->
本文分享自天翼云开发者社区《ZOS对象存储跨域资源访问的实现和使用》,作者:对象存储二三事
跨域的定义
跨域指的是从一个域名去请求另外一个域名的资源,即跨域名请求。跨域时,浏览器不能执行其他域名网站的脚本,这是由浏览器的同源策略造成的,是浏览器施加的安全限制。同源策略是一种约定,是浏览器最核心也最基本的安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源 ,这是一个用于隔离潜在恶意文件的重要安全机制。
同源的定义
所谓同源是指:请求的url与当前网页的协议、域名、端口三者都相同,只要三者之间有一个不同,就不是同源,发送的请求即跨域请求。基于同源策略,浏览器都会阻止跨域请求,如下图所示:

CORS
CORS是一个W3C标准,全称是跨域资源共享(cross-origin resource sharing),它克服了浏览器同源策略的限制,允许浏览器向跨域服务器发出跨域请求。目前所有主流的浏览器都支持CORS,整个CORS通信过程,都是浏览器自动完成,不需要用户参与。所以只要服务器实现了CORS接口,就可以实现跨域通信。浏览器将CORS跨域请求分为两类:简单请求和非简单请求。
简单请求必须同时满足以下两点要求:
(1)HTTP请求方法是以下三种之一:
HEAD
GET
POST
(2)只包含简单HTTP请求头,即:
Accept,
Content-Language,
Content-Type: 只限于application/x-www-form-urlencoded, multipart/form-data, 或者text/plain三者之一。
简单请求之外的请求就是非简单请求。
对于简单请求,浏览器直接发出CORS请求。具体来说,就是在请求头之中,增加一个Origin字段。Origin字段用来说明,本次请求来自哪个源,服务器根据这个值,决定是否同意这次请求。对于非简单请求,浏览器会在正式通信之前,先发送一次预检请求,即OPTIONS请求。浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP请求方法和请求头字段。只有得到肯定答复,浏览器才会正式与请求服务器进行通信,否则浏览器就会报错。
ZOS对象存储跨域资源访问的实现和使用
ZOS对象存储底层实现了CORS跨域资源共享。通过在bucket资源上设置CORS规则,指定允许访问的源、允许访问的HTTP请求方法、允许的HTTP请求头以及允许返回的响应头等。当用户发送跨域请求到ZOS对象存储,后端会对该请求进行检查,如果是允许访问的源、允许访问的请求方法等,则允许跨域访问,否则拒绝跨域请求。用户可以通过天翼云控制台或者SDK的方式对bucket资源设置CORS规则,推荐使用天翼云控制台进行配置,操作简单且明了:
(1)进入bucket详情页,选择权限管理,跨域设置,如下图所示:

(2)通过天翼云控制台创建的bucket,默认都会有一条允许天翼云控制台的CORS规则,点击创建策略可以新增CORS规则,如下图所示:


用户设置过跨域规则之后,即可通过浏览器向后端ZOS对象存储发送跨域请求,并正常通信。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
软件安全成为嵌入式云计算的热点
IT有明天:大转换中的云计算
消息称谷歌首款 AR 眼镜年内上市售卖,将在本周 I/O 大会发布
全球云计算市场迎来重大价格调整
传说中的云计算、云存储是不是和这东西有关?
应用于数据中心(DataCenter)的 Smarter Solution
将AI工作负载推向边缘
2016物联网大会宣传片
Android云计算之移动点餐系统分析与设计
今年五月份是汽车电子,测试测量和云计算三大热点!
台积电AI产能:英伟达的需求可能迫使实现翻倍
云计算驱动联想持续创新
云计算在IC设计中的应用
基于云计算技术的日志管理系统
基于云计算的元器件查找软件,包含海量在线数据库
云计算掀起智能硬件变革的浪潮
何为“云计算”
由Memfault驱动的Nordic nRF Cloud荣获移动突破奖所颁发之年度云计算创新奖
美图获阿里巴巴2.5亿美元战略投资,将在AI与电商领域深度合作
“英伟达亲儿子”CoreWeave提交IPO申请,去年收入暴涨8倍
云计算掀起智能硬件变革的浪潮
打造可靠的云存储技术
Upwind筹集2.5亿美元以实现云安全规模化
边缘计算与人工智能(Edge AI)如何引领新一轮技术革命
F5基于云计算平台的虚拟桌面连接解决方案
云的数据安全与监控
消费电子云方案
仿人型机器人能同时流利地说15种语言