Javascript AmazonS3-访问预先指定的URL
我已经生成了一个预先签名的S3URL。当尝试从JS代码访问它时,我得到错误“请求的资源上不存在“access Control Allow Origin”头”,并且我的bucket cors配置被禁用Javascript AmazonS3-访问预先指定的URL,javascript,amazon-web-services,amazon-s3,Javascript,Amazon Web Services,Amazon S3,我已经生成了一个预先签名的S3URL。当尝试从JS代码访问它时,我得到错误“请求的资源上不存在“access Control Allow Origin”头”,并且我的bucket cors配置被禁用 <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
等
我已将cors配置更改为
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
*
得到
3000
*
它成功了,我可以通过js代码访问url。但我试图了解将此标记从授权更改为*,是否有任何安全隐患
请让我知道。这将取决于您计划如何使用预签名的url
- 如果web应用程序/服务器将使用它临时访问s3资源,则CORS
AllowedOrigin
应限制在将请求资源的应用程序的域内。通常,此CORS配置(访问控制允许源站
)具有最大的安全影响。看到或看到
您可以使用通配符或特定域对其进行限制:
<AllowedOrigin>https://*.mydomain.s3.amazonaws.com</AllowedOrigin>
https://*.mydomain.s3.amazonaws.com
- 如果多个客户端(即最终用户web浏览器)将请求它,则您别无选择,只能设置
*
,因此这不是推荐的方法
如果您仅对您信任的允许域进行了访问限制,则将allowedHeader
设置为*
的安全影响最小。这是一个类似的问题: