【问题标题】:Risk of enabling CORS?启用 CORS 的风险?
【发布时间】:2013-08-29 10:06:21
【问题描述】:

Amazon S3 提供了一种基于每个存储桶启用 CORS 支持的方法。但默认情况下,CORS 是禁用的。

我想不出为我的 S3 存储桶启用通配符 CORS 所涉及的单一安全风险,但大概至少存在一些危险,否则他们只会为所有内容启用它并且不会提供这样的详细说明要信任哪些域的规则。

谁能描述我不想在所有存储桶上设置<AllowedOrigin>*</AllowedOrigin> 的漏洞利用或其他原因?

【问题讨论】:

    标签: amazon-web-services amazon-s3 cors


    【解决方案1】:

    来自Wikipedia

    Access-Control-Allow-Origin: *

    这通常是不合适的。这是唯一的情况 适当的是当页面或 API 响应被完全考虑时 公共内容,旨在供所有人访问, 包括任何网站上的任何代码。

    这是一个您需要使用 CORS 但应避免使用通配符的示例:您将需要使用 AJAX 从您的应用(托管在另一个 URL 上)访问的内容存储在 S3 上,但您不希望使该内容对其他网站公开可用(例如,存储您应用程序的某些数据的 HTML 或 JSON 文件,这些文件不应从其他网站获得)。

    还有其他场景,例如可以使用 AJAX 从其他站点将内容上传到您的 S3 存储桶。

    【讨论】:

    • 但是要成为一种风险,数据必须是可公开访问的,如果风险是其他人将托管数据并且我将为此付费,S3 已经提供了“aws :Referer" 阻止其他域的方法。
    • 是的,数据需要公开。如果您的所有数据都不是公开的(它总是需要身份验证),那么 CORS 通配符就不是真正的问题。如果有人可以在您的存储桶中上传数据,他们可能会造成比产生额外费用更大的损害,具体取决于您的应用程序的工作方式(例如 XSS 攻击)。使用“aws:Referer”来限制访问不会在所有情况下都为您提供 100% 的保护,但另一方面,Access-Control-Allow-Origin 也不能作为它的额外保护层。
    猜你喜欢
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多