Amazon S3 提供了一种基于每个存储桶启用 CORS 支持的方法。但是,默认情况下,CORS 是禁用的。
我想不出为我的 S3 存储桶启用通配符 CORS 所涉及的单一安全风险,但大概必须至少存在一些危险,否则他们只会为所有内容启用它,并且不会提供如此详尽的规则确切地信任哪些域。
有人可以描述一个漏洞或其他原因,为什么我不想只设置<AllowedOrigin>*</AllowedOrigin>
我的所有存储桶?
Amazon S3 提供了一种基于每个存储桶启用 CORS 支持的方法。但是,默认情况下,CORS 是禁用的。
我想不出为我的 S3 存储桶启用通配符 CORS 所涉及的单一安全风险,但大概必须至少存在一些危险,否则他们只会为所有内容启用它,并且不会提供如此详尽的规则确切地信任哪些域。
有人可以描述一个漏洞或其他原因,为什么我不想只设置<AllowedOrigin>*</AllowedOrigin>
我的所有存储桶?
来自维基百科:
Access-Control-Allow-Origin: *
这通常是不合适的。唯一合适的情况是页面或 API 响应被视为完全公开的内容,并且旨在供所有人访问,包括任何站点上的任何代码。
这是您需要使用 CORS 但应避免使用通配符的示例:您将内容存储在 S3 上,您需要使用 AJAX 从您的应用程序(托管在另一个 URL 上)访问这些内容,但您不想这样做对其他网站公开可用的内容(例如,存储您应用的某些数据的 HTML 或 JSON 文件,这些文件不应从其他网站获得)。
还有其他场景,例如可以使用 AJAX 从其他站点将内容上传到您的 S3 存储桶。