是否可以在ASP.NET中禁用Firefox的离线缓存(在服务器级别)?

时间:2012-07-19 16:13:31

标签: asp.net firefox offline-caching

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

Disabling browser caching for all browsers from ASP.NET

这并没有完全解决问题。它只是禁用后退按钮的缓存(当不处于离线模式时)。

这是一个简单的场景:

如果用户A登录到他的银行。用户A正在进行交易,他甚至会更新一些个人数据。最后,用户A完成并从他的银行网站注销。用户A离开浏览器,因为他有另一个选项卡打开下载文件,这是几个演出。用户B希望继续发送电子邮件以发送一些电子邮件,因此用户A不会关闭浏览器。他知道安全风险,因为他已经阅读了一旦你注销网站必须要做的事情,但他并不想停止下载。对于用户A来说,必须重新下载对他来说太多时间了,而且他只是你的典型用户而且并不认为用户B(成为他的好朋友)会做任何恶意的事情。那么用户B就使用了浏览器。用户B做的第一件事是#34;离线工作"。用户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),但它仍然无法解决问题。

1 个答案:

答案 0 :(得分:0)

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

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

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