Google app engine 在app.yaml(谷歌应用程序引擎)中添加HSTS标题

Google app engine 在app.yaml(谷歌应用程序引擎)中添加HSTS标题,google-app-engine,https,http-headers,app.yaml,hsts,Google App Engine,Https,Http Headers,App.yaml,Hsts,我的app.yaml中有以下处理程序部分: handlers: - url: /(robots\.txt|sitemap\.xml) static_files: \1 upload: (robots\.txt|sitemap\.xml) secure: always http_headers: Strict-Transport-Security: 'max-age=63072000; includeSubDomains; preload' -

我的
app.yaml中有以下处理程序部分:

handlers:
  - url: /(robots\.txt|sitemap\.xml)
    static_files: \1
    upload: (robots\.txt|sitemap\.xml)
    secure: always
    http_headers:
      Strict-Transport-Security: 'max-age=63072000; includeSubDomains; preload'
  - url: /.*
    script: main.app
    secure: always
    http_headers:
      Strict-Transport-Security: 'max-age=63072000; includeSubDomains; preload'
另一个子模块(
static.yaml
)提供的另一个子域具有以下功能:

handlers:
  - url: /
    static_dir: files
    secure: always
    http_headers:
      Access-Control-Allow-Origin: '*'
      Strict-Transport-Security: 'max-age=63072000; preload'
我能够部署
static.yaml
,而不会给appengine带来任何问题:

$ appcfg.py update static.yaml
12:48 PM Host: appengine.google.com
12:48 PM Application: XXXXXX; module: static; version: 1
12:48 PM
Starting update of app: XXXXXXXX, module: static, version: 1
12:48 PM Getting current resource limits.
12:48 PM Scanning files on local disk.
[...]
[...]
12:49 PM Checking if updated app version is serving.
12:49 PM Completed update of app: XXXXXX, module: static, version: 1
然而,当我尝试更新
app.yaml
配置时,我得到:

$ appcfg.py update app.yaml
12:48 PM Host: appengine.google.com
Usage: appcfg.py [options] update <directory> | [file, ...]

appcfg.py: error: Error parsing .\app.yaml: Unexpected attribute "http_headers" for mapping type script.
  in ".\app.yaml", line 31, column 1.
$appcfg.py更新app.yaml
下午12:48主持人:appengine.google.com
用法:appcfg.py[选项]更新|[文件,…]
appcfg.py:错误:分析错误。\app.yaml:映射类型脚本的意外属性“http\u头”。
在“\app.yaml”第31行第1列中。
我理解这意味着我必须在python脚本中处理HSTS配置。但是,我在
main.app
界面中有大约10个处理程序。在
app.yaml
level本身,是否有其他方法可以代替更新每个文件以添加STS标题


检查,在
script
类型映射中没有提到
http\u header
指令的限制。

我今天在app.yaml中查看了http headers,看到了这一点。这似乎与你的问题有关

此外,标头Strict Transport Security已从中删除 来自*.appspot.com以外的任何域的响应

作为文件:

除非您的域被列入白名单,否则不能使用严格的传输安全标头。要将您的域放入白名单,请联系

更新


从2018年起,自定义域不需要被列入白名单。换句话说,HSTS头不再被剥离。

您可以使用app.yaml控制静态文件处理程序而不是动态处理程序。您需要在应用程序代码中设置标题

我认为这已经过时了。该文档不再提及白名单。提及的内容仍然存在,链接已更改:这由KB备份:“为了向应用程序添加HTTP严格传输安全标头(HST),您必须在应用程序的代码中实现标头,而不是在应用程序的配置文件中实现”-