使用 HTTPS 启用浏览器缓存

信息安全 Web应用程序 tls 网页浏览器 网络服务器
2021-09-04 05:25:28

我了解不应缓存敏感数据(即,您不想缓存包含所有银行帐户详细信息的 HTML 文件),但受 HTTPS 保护的网站应该能够缓存某些内容(Javascript、CSS、图片等)。 Tomcat似乎不允许开发人员在启用 SSL/TLS 后明确定义可缓存的文件,而且我知道即使他们这样做了,用户的浏览器也只对 HTTPS 会话使用内存缓存并在会话后丢弃所有内容结束了。随着整个 Web 2.0 的发展,在我看来,网站运营商可能会对这种减少网站负载(以及页面加载时间)的能力感兴趣,同时保持用户浏览器中的“绿条”我们都有一种温暖、模糊的感觉。

更新:删除了有关使用 HMAC 验证缓存文件的位,因为它没有用。如果攻击者正在利用某种形式的哈希冲突,那么哈希是否使用密钥计算都没有关系。

1个回答

在您的 https 响应中使用此标头:

Cache-control: public

或者将“, public”添加到您现有的 Cache 控制标头中。

使用 Cache control: public 指令为 Firefox 启用 HTTPS 缓存。

某些版本的 Firefox 要求设置 Cache control: public 标头,以便将通过 SSL 发送的资源缓存在磁盘上,即使其他缓存标头已明确设置。尽管此标头通常用于启用代理服务器的缓存(如下所述),但代理无法缓存通过 HTTPS 发送的任何内容,因此为 HTTPS 资源设置此标头始终是安全的。

来源:谷歌页面速度

发布的HTTPS 性能调整在“提示 #3:对静态内容使用持久缓存”一节中指出,Internet Explorer 也可以通过 https 连接缓存静态资源。