我们的调查向我们表明,并非所有浏览器都以统一的方式尊重http缓存指令.
出于安全原因,我们不希望在我们的应用程序某些网页缓存,有史以来,通过Web浏览器.这必须至少适用于以下浏览器:
我们的要求来自安全测试.从我们的网站注销后,您可以按后退按钮查看缓存页面.
你能否描述一个例子,说明在IIS中托管的asp.net应用程序中的公共和私有缓存控制之间的区别.
我在MSDN中读到的不同之处如下:
Public: Sets Cache-Control:public指定响应可由客户端和共享(代理)缓存缓存.
私有:默认值.设置Cache-Control:private以指定响应仅在客户端上可缓存,而不是由共享(代理服务器)缓存缓存.
我不确定我是否完全理解每种选择的利弊.何时使用或不使用它的例子会很棒.
例如,如果我有两个托管相同应用程序的Web服务器,我该怎么办?如果我选择私人或公共,有什么值得注意的吗?
因为我们保护 .PDF 文件免受匿名用户的侵害,所以我们有一个自定义处理程序,所以我们有一个条目
我们还对 http 标头进行了更改,以通过 IIS 7 管理添加“cache-control: no-cache,no-store”,这会在 system.webserver 元素下创建 web.config 条目,如下所示:
<httpProtocol>
<customHeaders>
<clear />
<add name="cache-control" value="no-cache,no-store" />
</customHeaders>
</httpProtocol>
Run Code Online (Sandbox Code Playgroud)
当我在 burpsuite 会话中查看响应标头时,我看到 .aspx 页面:cache-control: no-store,no-cache,no-store
但对于 PDF 页面:
缓存控制:私有,无缓存,无存储
我的目标是让一切都变成“无缓存,无存储”。我不确定我错过了什么。web.config 中没有其他缓存设置。请告知如何从 PDF 页面中删除“私人”以及如何从所有其他页面中删除额外的无商店。其他通过 System.Web.StaticFileHandler 的静态页面,它们也有“no-store,no-cache,no-store”。