将 CSP header 添加到 Google 云存储

Add CSP header to Google Cloud Storage

我正在从 Google 云存储桶中提供 SPA (Vue-app)。 我正在尝试 配置 Google Cloud Storage 存储桶以添加 CSP 响应 header。 (Content-Security-Policy: default ...)

我尝试了以下方法,但没有成功:

1。添加 header 与 gsutil

运行以下:

gsutil setmeta -h "Content-Security-Policy:${CSP}" gs://{BUCKET_NAME}/index.html

但是这个returns下面的回复:

CommandException: Invalid or disallowed header (Content-Security-Policy).
Only these fields (plus x-goog-meta-* fields) can be set or unset:
[u'cache-control', u'content-disposition', u'content-encoding', u'content-language', u'content-type']

这个header好像不是标准允许添加的

2。添加带有 gsutil

前缀的自定义 header

然后我继续听从他们的建议并在前面加上 x-goog-meta-*,希望他们自己将其转换回 Content-Security-Policy。 运行 以下:

gsutil setmeta -h "x-goog-meta-Content-Security-Policy:${CSP}" gs://{BUCKET_NAME}/index.html

..给出以下响应:

Setting metadata on gs://{BUCKET_NAME}/index.html...
/ [1 objects]                                                                   
Operation completed over 1 objects. 

所以这行得通。但是在检查响应 headers 时,他们没有将其更改为 Content-Security-Policy header:

所以现在我有点不知道如何为 Google 存储桶启用此 CSP-header。 我错过了什么?或者这根本不可能?

提前致谢。

暂时Google云存储不接受海关headers,只接受headers included in the documentation.

有一个 public 功能请求,您可以在 here 中关注。

在 SPA 的 <head> 标签中使用以下标签启用 Content-Security-Policy

<meta http-equiv="Content-Security-Policy" content="default-src https:">

如需更多信息,请参阅以下内容:

Mozilla: The Document-level Metadata element

Mozilla: Content-Security-Policy

bucket级别不支持,Load Balancer级别支持,查看官方Cloud Storage Documentation