【发布时间】:2016-11-23 23:59:43
【问题描述】:
如何在 Amazon S3 上设置 CORS 以仅允许已批准的域访问我的 S3 存储桶中的 JS 脚本?目前,我在 S3 存储桶上设置了如下 CORS:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>www.someapproveddomain.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
然而,任何域都可以以demonstrated at JSFiddle 的身份访问和运行脚本hello.js(位于S3 存储桶中)。有人我做错了吗?或者,也许我只是误解了 CORS 应该做什么?
【问题讨论】:
-
把CORS www.someapproveddomain.com 改成someapproveddomain.com 看看是否生效
-
CORS 允许在其他源中运行的脚本读取您源上的资源。执行脚本不需要跨域脚本能够读取脚本。 (与图像相比:您可以在页面上显示跨域
<img>,而无需脚本读取图像的内容。) -
“CORS 允许在其他源中运行的脚本读取您源上的资源”。嗯...根据 MDN (developer.mozilla.org/en-US/docs/Web/Security/…):“通常不允许跨域读取”。
标签: javascript amazon-web-services amazon-s3 cors