首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >缓存控制机制

缓存控制机制
EN

Server Fault用户
提问于 2020-06-14 22:11:36
回答 1查看 72关注 0票数 0

我试图找出配置为“缓存控制最大年龄=0,必须重新验证”的服务器与具有“缓存控制:无缓存,无存储”的服务器之间的区别。因此,首先,据我所知,根本不是缓存敏感信息,因为最大年龄是0,客户端每次都需要重新验证更改。然而,我的一些老年人提到,仍然是脆弱的!不过,我没看到我的扫描仪收到那面旗子。所以,

  1. 如何使用任何测试(如果有的话)确认该漏洞?
  2. 最大年龄0和没有缓存有什么区别?看上去他们是一样的。后者与非商店相比更安全吗?
EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-06-15 00:29:32

HTTP(S)缓存是在RFC 7234中定义的;目前没有任何替代文档,因此您应该参考以下内容。

no-cache响应指令有点用词不当。它并不禁止缓存文档。它允许缓存文档,但它立即被认为是过时的,在使用之前必须在源服务器上重新验证。您将注意到,这与max-age=0, must-revalidate的语义完全相同。在这两种情况下,内容都被缓存,如果服务器向验证请求发送304响应,则可以使用缓存的文档。

若要实际请求缓存而不缓存文档,请使用no-store。在这种情况下,甚至不需要严格指定no-cache,因为文档无论如何都不会被缓存!但这可能比单独使用no-cache慢得多,因为每次用户访问文档时都必须重新下载整个文档。

也许您使用的Cache-Control指令中有一个没有包含no-store的事实就是您的前辈所指的,尽管将其称为“漏洞”严重夸大了问题,而且这是否是安全问题(尽管这通常是隐私问题)取决于您所提供的内容。

在发送特定于用户的信息的大多数上下文中,设置Cache-Control: private并允许用户浏览器缓存数据就足够了,而共享缓存不会缓存数据。我想不出有多少真的需要no-stored,除了私钥,核发射码,每15秒改变一次的数据,等等。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1021429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档