小编Jas*_*eow的帖子

使S3 CORS Access-Control-Allow-Origin动态回应请求域

如何设置S3 CORS AllowedOrigin配置,使其动态回显Access-Control-Allow-Origin标头中的请求域?

在帖子"CORS with CloudFront,S3和Multiple Domains"中,建议设置AllowedOrigin<AllowedOrigin>*</AllowedOrigin>执行此操作.但是,S3会返回Access-Control-Allow-Origin: *.

Access-Control-Allow-Origin: *在我的情况下不起作用,因为我image.crossOrigin = "use-credentials"在JavaScript应用程序中使用.使用此选项,S3返回Access-Control-Allow-Credentials: true.然后对图像的跨源访问失败,因为不允许使用通配符作为允许的来源与凭证一起使用.

为什么需要这样的背景:

在我的设置中,对S3上的图像的访问必须通过我们的域,其中需要验证以限制访问并检查帐户是否被授权访问图像.如果是,则服务器返回302重定向到S3 URL.

要使身份验证生效,image.crossOrigin = "use-credentials"必须进行设置,以便请求使用所需的凭据访问我的服务器.(顺便提一下,当我在Firefox 30.0和Chrome 35.0.1916.153上进行测试时,如果crossOrigin设置为anonymous,则仍然会发送凭据.但是不能在Safari 7.0.4上进行.只能使用use-credentials.获得一致的跨浏览器行为.).

由于浏览器透明地重定向到S3 URL,因此也会发送凭据.

amazon-s3 cors

13
推荐指数
2
解决办法
9368
查看次数

标签 统计

amazon-s3 ×1

cors ×1