我是否必须为与我的文档一起加载的所有资源(样式表、脚本、图像)返回HTTP 严格传输安全标头?还是仅将它们包含在文档中就足够了?
安全提示应该按域应用,因此仅将其与文档一起发送就足以通知浏览器仅通过 HTTPS 获取资源?还是我误解了它应该如何工作?
任何只直接访问我网站资源的人都不是我想要专门迎合的受众。
我是否必须为与我的文档一起加载的所有资源(样式表、脚本、图像)返回HTTP 严格传输安全标头?还是仅将它们包含在文档中就足够了?
安全提示应该按域应用,因此仅将其与文档一起发送就足以通知浏览器仅通过 HTTPS 获取资源?还是我误解了它应该如何工作?
任何只直接访问我网站资源的人都不是我想要专门迎合的受众。
事实证明,发送文件的标题就足够了。
如果 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 个字节。