我遇到了问题,并且一直在寻找信息几个小时。 我希望阻止对存储桶中的对象的访问,该存储桶只能从我的网站进行查看,为此,我已根据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
}
]
但这对我不起作用,仍然对所有人可见
答案 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配合使用。