华为云对象存储OBS跨域资源共享_云淘科技
跨域资源共享(Cross Origin Resource Sharing,CORS)是由W3C标准化组织提出的一种网络浏览器的规范机制,定义了一个域中加载的客户端Web应用程序与另一个域中的资源交互的方式。而在通常的网页请求中,由于同源安全策略(Same Origin Policy,SOP)的存在,不同域之间的网站脚本和内容是无法进行交互的。
OBS支持CORS规范,允许跨域请求访问OBS中的资源。CORS配置会在两分钟内生效。
OBS支持静态网站托管,而只有当对该桶设置了合理的CORS配置,OBS中保存的静态网站才能允许响应另一个跨域网站的请求。
OBS系统提供的默认配置为根域名跨域访问允许所有域访问,会使客户端存在被攻击的风险。
客户端可通过在自己的桶内创建配有自己规则的crossdomain.xml,并在其flash代码中添加Security.loadPolicyFile(“https://bucket.obs.cn-north-4.myhuaweicloud.com/crossdomain.xml”),从而避免被攻击的风险。其中,bucket.obs.cn-north-4.myhuaweicloud.com需根据实际情况替换为自己桶的访问域名。
背景知识
跨域是指不同域名之间相互访问。
跨域访问是浏览器出于安全考虑而设置的一个限制,即同源策略。由于JavaScript同源策略的限制,A域名下的JavaScript无法操作B域名或C域名下的对象。
同协议、同域名(或IP)、以及同端口视为同一个域。两个页面的协议、域名和端口(若指定了端口)相同,则视为同源。为了更好的理解是否同源,您可以查看表1中相对https://support.huaweicloud.com/dir/test.html的同源检测示例。
URL |
访问结果 |
原因 |
---|---|---|
https://support.huaweicloud.com/dir/other.html |
成功 |
协议、域名、端口都相同 |
https://support.huaweicloud.com/dir/inner/other.html |
成功 |
协议、域名、端口都相同 |
http://support.huaweicloud.com/dir/test.html |
失败 |
域名、端口相同,协议不同 |
https://support.huaweicloud.com:81/dir/test.html |
失败 |
协议、域名相同,端口不同 |
https://help.huaweicloud.com/dir/test.html |
失败 |
协议、端口相同,域名不同 |
使用场景
CORS的典型应用场景包括:
通过CORS支持,使用JavaScript和HTML5来构建Web应用,直接访问OBS中的资源,而不再需要代理服务器做中转。
使用HTML5中的拖拽功能,直接向OBS上传文件,展示上传进度,或是直接从Web应用中更新内容。
托管在不同域中的外部网页、样式表和HTML5应用,现在可以引用存储在OBS中的Web字体或图片,让这些资源能被多个网站共享。
使用方式
OBS支持通过控制台、API、SDK方式配置跨域资源共享。
支持的使用方式 |
参考文档 |
---|---|
控制台 |
配置跨域资源共享 |
SDK |
OBS支持多种语言SDK,请从SDK概述页面选择进入对应的开发指南查阅。 |
API |
设置桶的CORS配置 |
父主题: 数据安全
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家