我是否必须为加载了我的文档的所有资源(样式表,脚本,图像)返回 HTTP Strict Transport Security 标头?或仅仅将它们包含在文档中是否足够?
安全提示应该按域应用,因此只需将文件与文件一起发送就足以通知浏览器只通过HTTPS获取资源?或者我误解了它应该如何工作?
任何人只能直接访问我网站的资源并不是真正想要专门为之服务的观众。
答案 0 :(得分:4)
事实证明,发送文件的标题应该足够了。
如果UA通过安全通道从已知HSTS主机接收HTTP响应但响应缺少STS头字段,则UA必须继续将主机视为已知HSTS主机,直到知识的最大年龄值为止到达那个已知的HSTS主机。
https://tools.ietf.org/html/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个字节。