跨域 CORS 和图像

Posted

技术标签:

【中文标题】跨域 CORS 和图像【英文标题】:Cross Domain CORS and Images 【发布时间】:2015-07-02 10:47:36 【问题描述】:

我正在使用 AWS S3 和 Cloudfront 将图像传送到我的站点/域。

我一直在研究 AWS S3 CORS,我想问一下我是否限制域会限制其他域访问我的图像。

如果我要在包含图像的存储桶上设置以下内容,这会阻止其他域访问存储桶中的图像,或者图像的操作方式与 CORS 下的资源不同。

<AllowedOrigin>http://www.example.com</AllowedOrigin>

基本上我想将我的图片限制在我的网站上。

另外我听说您必须将 Cloudfront 作为另一个 AllowedOrigin 来完成这项工作 - 有人可以确认吗?

谢谢

【问题讨论】:

【参考方案1】:

CORS 是由浏览器强制执行的策略。它不会阻止用户从您的云端分发中下载图像。

你有两个选择。

    将所有文件设为私有并通过签名 URL 提供访问权限。但是,在这种情况下,Cloudfront 不会真正缓存图像。

    另一个选项是配置 cloudfront 以转发所有标头,并使用存储桶策略根据引用者限制访问。你可以解决这个问题,但它会阻止大多数随意的盗链。

【讨论】:

以上是关于跨域 CORS 和图像的主要内容,如果未能解决你的问题,请参考以下文章

IE10 和图像/画布的跨域资源共享 (CORS) 问题

Javascript CORS 图像/画布操作

如何在无头 wordpress 环境中确保图像请求的 CORS?

即使启用了通过 JavaScript 加载的图像,也会向我抛出 CORS 错误

未设置 CORS 标头 - 我可以请求图像 url,然后将其返回给自己吗?

如何将 CORS(跨域策略)添加到 NGINX 中的所有域?