Cross Origin不起作用-Google Cloud

时间:2019-02-09 03:46:17

标签: json google-cloud-storage

我遇到了问题,并且一直在寻找信息几个小时。 我希望阻止对存储桶中的对象的访问,该存储桶只能从我的网站进行查看,为此,我已根据google云存储的文档配置了Cross Origin。

我有这个网址:https://storage.googleapis.com/cros-test/480_intro%20v2_2.mp4,该网址具有公开的权限,该网址只希望从我的Web example.com上可见。

[
    {
      "origin": ["https://example.com"],
      "responseHeader": ["*"],
      "method": ["GET", "HEAD", "DELETE"],
      "maxAgeSeconds": 3600
    }
]

但这对我不起作用,仍然对所有人可见

1 个答案:

答案 0 :(得分:1)

快速的答案是,CORS不向Google Cloud Storage(GCS)提供授权。换句话说,您无法使用CORS保护GCS存储桶和对象。

CORS是浏览器在浏览器上强制实施的安全策略。 CORS代表跨域资源共享。 CORS的目的是通知浏览器是否可以从站点A加载/访问站点B上的资源。CORS的目的是保护最终用户而不是保护您的内容。

如果用户直接访问您的URL(将URL放入地址栏中),则不会发生交叉源。你的水桶就是原点。

其他人在其网站页面上使用您的对象URL来下载对象时,CORS就会加入其中。但是,CORS是浏览器自愿提供的,这意味着有些工具会忽略CORS策略(例如,curl)。通常,浏览器会将Origin标头添加到GCS随后分析的请求中。可以伪造,伪造或不指定。

例如,一个经常被忽略的GCS CORS问题:

  

注意:CORS配置仅影响对XML API端点的请求。   JSON API端点允许CORS请求,无论   目标存储桶。对端点的请求storage.cloud.google.com   不允许CORS请求。

     

storage.googleapis.com/您的存储桶⬅将没有标题

     

your-bucket.storage.googleapis.com⬅将具有cors标头

此Google document将帮助解释CORS如何与GCS配合使用。