3

我是否必须为与我的文档一起加载的所有资源(样式表、脚本、图像)返回HTTP 严格传输安全标头?还是仅将它们包含在文档中就足够了?

安全提示应该按域应用,因此仅将其与文档一起发送就足以通知浏览器仅通过 HTTPS 获取资源?还是我误解了它应该如何工作?

任何只直接访问我网站资源的人都不是我想要专门迎合的受众。

4

1 回答 1

4

事实证明,发送文件的标题就足够了。

如果 UA 通过安全通道从已知 HSTS 主机接收 HTTP 响应,但响应缺少 STS 头字段,则 UA 必须继续将该主机视为已知 HSTS 主机,直到知道该已知的 max-age 值已到达 HSTS 主机。

https://www.rfc-editor.org/rfc/rfc6797#section-8.6

希望客户已正确实施 RFC。

更新:这是我使用的 Apache 配置。我为资源取消设置它,而不是专门为文档设置它,以确保在重定向和 Apache 生成的其他页面中使用标头。

# Enable HSTS for all responses, but disable for common resources
Header always set Strict-Transport-Security "max-age=324000; includeSubDomains"
<FilesMatch "\.(css|gif|ico|jpeg|jpg|js|png|woff)$">
    Header unset Strict-Transport-Security
</FilesMatch>

从每个资源的响应标头中减少 64 个字节。

于 2013-07-14T12:37:19.243 回答