3

如何在 ASP.NET 或 IIS 中禁用 Firefox 的脱机缓存?我找到了这篇文章:

从 ASP.NET 禁用所有浏览器的浏览器缓存

这并不能完全解决问题。它只是禁用后退按钮的缓存(不在离线模式下)。

这是一个简单的场景:

如果用户 A 登录到他的银行。用户 A 正在做交易,他甚至去更新一些个人数据。最后,用户 A 完成并从他的银行网站注销。用户 A 让浏览器保持打开状态,因为他打开了另一个选项卡,正在下载一个需要几场演出的文件。用户 B 想继续使用他的电子邮件发送一些电子邮件,因此用户 A 没有关闭浏览器。他知道安全风险,因为他已经阅读了您注销站点后必须执行的操作,但他不想停止下载。对于用户 A,必须重新下载对他来说是太多时间了,而且他只是您的典型用户,并且不认为用户 B(作为他的好朋友)会做任何恶意的事情。因此,用户 B 使用浏览器。用户 B 做的第一件事是“离线工作”。用户 B 现在拥有用户 A 的所有数据。该页面有一个离线缓存供用户 B 查看。用户 B 现在可以打开历史记录来查看那些缓存的页面,或者如果页面保持打开状态,只需单击返回(无论哪种方式都有效)。用户 B 现在拥有用户 A 浏览过的所有页面。所以任何敏感数据现在都是他的。

有谁知道这是否可以在服务器级别进行控制。我知道在 Firefox 中您可以访问 about:config,但这不是服务器调整的选项。即便如此,这也可以告诉用户,但并不是每个用户都能做到这一点(对某些用户来说太复杂了),或者有些用户会因为懒惰而忽略警告,或者只是不阅读页面上的内容。我知道会有一个人会说,“哦,那是他们自己的错,他们应得的”。老实说,我认为这种意义上的无知不是用户的错。考虑一个 80 多岁的老人,他不以技术为中心(就像我父亲一样,我经常给他做和不做关于在线的事情,但他仍然没有真正完全理解风险)。

所以我再次重申,是否可以在服务器级别禁用这种离线缓存?我还发现了这个帖子:

http://forums.asp.net/post/1386380.aspx

这会有帮助吗?请提供任何帮助。请保持建设性,不要开始辩论。我想我已经很清楚了,我对此做了很多研究,没有运气。请注意,只有在 firefox 上的离线缓存才是问题所在,在其他所有浏览器(或 firefox onlinle)上,缓存已按预期被禁用。

更新:

我实际上已经有了最后一个链接的建议(http://forums.asp.net/post/1386380.aspx),但它仍然不能阻止问题。

4

1 回答 1

0

从服务器端禁用缓存是不可能的,因为服务器只能请求浏览器不存储在缓存中。休息取决于浏览器是否跟随它。

最好的选择是不要将数据发送到浏览器,因此它永远不会被缓存,而是使用 json/Xml 或任何你喜欢的东西按需获取它。

对我有用的唯一技巧是通过常规页面方法从加载中删除所有敏感信息,并在 window.ready 事件上通过 ajax/jquery 加载它。一旦我实现了回调和 ajax,后退按钮和“脱机工作”问题就得到了解决,但是通过 ajax 回调推出它确实是一项艰巨的任务。

于 2013-06-21T12:25:16.383 回答