【问题标题】:What are the drawbacks of using cache-control: no-store?使用 cache-control: no-store 的缺点是什么?
【发布时间】:2013-05-13 23:12:54
【问题描述】:

我们希望“防止无意中释放或保留敏感信息(例如,在备份磁带上:))”并计划使用 HTTP 标头 Cache-control: no-store。这样做的缺点是什么?从规范来看,缓存似乎将继续运行——它只是不能使用非易失性存储。为了选择指定不存储的响应,我们有一些“敏感度”度量。我们应该使用什么平衡措施 - 换句话说,为什么不将所有页面标记为禁止存储?

【问题讨论】:

  • 性能下降浮现在脑海中。但是一旦你向浏览器发送了一些东西,你就不再控制它了,所以我不确定操纵缓存策略会完成什么。
  • 已请求我们阻止有权访问用户机器(以及因此浏览器缓存文件在磁盘上)的入侵者访问敏感页面。大多数现代浏览器似乎都能理解并使用no-store 指令做一些理智的事情。

标签: http caching security http-caching


【解决方案1】:

通过使用存储,客户端可以使用本地缓存。此缓存可提高它们的性能并减少您自己服务器上的负载。

在您的情况下,我认为发送敏感页面而不进行缓存是有意义的。

我认为 no-store 的另一个技术问题(这更像是一个奇怪的副作用)是旧版本的 IE 在缓存关闭的情况下 Content-Disposition 标头存在问题。这种行为使得下载提示将无限期地有 0% 的进度。

关于无缓存策略的一个误解是浏览器实际上会尊重它而不是将其保存到磁盘。这不是真的 - 许多现代浏览器实际上将所有响应缓存到磁盘(参见SO)。但是,在这些情况下,此缓存加密的。

总的来说,我认为这样做是安全的。确保你没有像@Robert Harvy 所说的那样依赖这种机制,一旦你把它发送过来,你就会受到浏览器如何保存它的摆布。

【讨论】:

  • 谢谢。你的第一段是我想的,但很难衡量。在我们的应用程序中,有很多敏感信息,缓存非常有用。我们希望我们可以保持缓存并以平衡的方式避免磁盘存储。是的,我很清楚这不是一个完整的安全修复程序。例如,如果坏人有权访问用户帐户,他们可以用可以随意处理数据的东西替换浏览器。我试图让在这种情况下找到这些信息变得更加复杂。无法保证机器的安全性。
猜你喜欢
  • 2022-11-17
  • 2011-11-26
  • 2012-11-03
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
  • 2019-07-09
  • 1970-01-01
  • 2014-01-16
相关资源
最近更新 更多