pdf - 有什么可靠的方法可以阻止 Internet Explorer (v7, 8) 停止缓存 PDF 文件?

标签 pdf caching internet-explorer

我使用的一个应用程序生成 PDF 文档并在浏览器窗口中呈现它们。文档中的某些数据可能被视为敏感数据,因此我们正在探索如何防止浏览器缓存文档内容。我们使用以下 Java 代码阻止缓存在 Firefox 中,但在 IE 8 中不起作用:

response.setHeader("Expires", "0");
response.setHeader("Pragma", "private");
response.setHeader("Cache-Control", "max-age=0, no-store");
response.setHeader("Content-disposition", "inline; filename= \"" + filename + "\"");
response.setContentLength(fbytes.length);

我想知道是否有人有幸操纵 header 以防止 IE 缓存?提前致谢。

最佳答案

当您说“缓存”时,您的意思是“将文档写入磁盘”?

不,没有好的方法可以做到这一点,因为 Adob​​e PDF 阅读器依赖缓存文件来显示文档。

通常,在 HTTPS 文档上指定“no-store”会完全阻止它在 IE 中下载,如下所述:http://blogs.msdn.com/b/ieinternals/archive/2009/10/03/internet-explorer-cannot-download-over-https-when-no-cache.aspx但是,由于此文档由 Adob​​e MIME 处理程序处理,因此您似乎没有遇到该问题。

真正的问题是“你的威胁模型是什么?”能够读取用户 TIF 的坏人通常有能力做其他坏事(例如安装恶意软件),因此试图将文档从磁盘上移开是相当徒劳的。尤其如此,因为现代操作系统使用虚拟内存(在交换文件中将内存页写入硬盘),这意味着具有不受限制的硬盘读取能力的坏人无论如何都可以恢复内存内容。

关于pdf - 有什么可靠的方法可以阻止 Internet Explorer (v7, 8) 停止缓存 PDF 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134530/

相关文章:

javascript - 阻止 Internet Explorer 将我的索引转换为 int

Angular 应用程序在 IE11 中显示空白页面

.net - 如何从使用 EPPlus.core 创建的 Excel MemoryStream 生成 PDF?

node.js - nodejs生成带有数字签名的PDF

Android打开失败: EACCES (Permission denied) in implementing PDF Reader library

javascript - IE11+ => 聚焦子 div 导致父滚动到顶部

java - 使用 Google KMS 和 Entrust 证书签署 PDF 文档

javascript - 缓存 javascript 文件的执行

caching - 是否可以根据 Varnish 中后端响应的大小来阻止缓存?

c# - 如何访问我只需要在 Application.Start 上创建一次的变量