帮助将 includeSubDomains 添加到 Strict-Transport-Security 标头

一位客户使用了一个有用的安全扫描器,现在认为 Strict-Transport-Security 标头应包含 ‘includeSubdomains’。

我在 app.yml 中添加了这两项:


  after_ssl:
    - replace:
        filename: /etc/nginx/conf.d/outlets/server/20-https.conf
        from: "max-age=31536000;"
        to:  "max-age=31536000; includeSubDomains;"
    - replace:
        filename: /etc/nginx/conf.d/outlets/discourse/20-https.conf
        from: "max-age=31536000;"
        to:  "max-age=31536000; includeSubDomains;"
- exec: sed -i "s/add_header Strict-Transport-Security 'max-age=31536000';/add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains\" always;/" /etc/nginx/conf.d/outlets/discourse/20-https.conf /etc/nginx/conf.d/outlets/server/20-https.conf

两者似乎都不起作用。在容器内运行第二个 sed 命令可以正常工作,并在重新启动 nginx 后按要求执行。

我不明白为什么它不起作用。

另外,这以前在模板中,但似乎在 2014 年被删除了,但最近的一些帖子包含显示 includeSubdomains 的标头。

我感到困惑。

1 个赞

嗯……你似乎在这里没有得到答案。这个话题属于 Dev 还是 Installation > Hosting:thinking:

1 个赞

好吧,我把它移到那里了,但最初的问题是有人声称不设置 includeSubDomains 是一个安全问题。

我很希望有人了解并关心 STS 标头中的 IncludeSubDomains 是否重要,这样我或许可以告诉这个人,数十万个其他网站都不同意,并且可能有人运行的脚本来查找这些“安全漏洞”是错误的。

所以也许我应该把这个重命名为“STS 标头中缺失 includeSubDomains 被认为有害”。

2 个赞

我更愿意称之为配置选择。

论坛是在顶级域还是其他域上?

我总是告诉人们,我们非常谨慎设置影响其域上其他主机的标头,如果他们想在这些主机上启用 HSTS,他们应该在各自的主机上设置标头。

我能想到的唯一有效理由是他们无法做到这一点,例如,当论坛位于顶级域上,并且客户端无法控制其他外部托管主机上的 HSTS 标头时,例如他们还托管了 shopify.example.com。然后他们基本上来找你,因为你是阻力最小的路径 :slight_smile:

2 个赞

不是。

这正是我当时的想法,虽然我无法清晰地表达出来。

谢谢。我会告诉他们,既然不是 Apex 域名,那么“最佳实践”是让每个主机强制执行自己的规则。

非常感谢。这对我帮助很大。至少我现在很确定我明白了。

2 个赞

此主题在上次回复后 30 天自动关闭。不再允许回复。