【问题标题】:Can I disable FF3 back button cache?我可以禁用 FF3 后退按钮缓存吗?
【发布时间】:2011-01-31 09:29:38
【问题描述】:

我发现当按下返回按钮时,即使我发送以下标题,它也会从浏览器缓存中获取上一页:

Test1.aspx

Server              ASP.NET Development Server/9.0.0.0
Date         Wed, 24 Mar 2010 17:49:40 GMT
X-AspNet-Version 2.0.50727
Location         Test2.aspx
Cache-Control no-cache, no-store
Pragma         no-cache
Expires         -1
Content-Type text/html; charset=utf-8
Content-Length 189
Connection         Close

【问题讨论】:

    标签: html firefox caching button


    【解决方案1】:

    缓存控制之类的东西只会告诉浏览器不要将下载的东西(js、css、图像等)保存在缓存中。它与访问页面的历史无关。

    您不应该尝试修改浏览器的数据。相反,您将处理事件并阻止您不希望在您的站点中发生的事件。

    【讨论】:

    • 如果我有敏感数据怎么办。说一个公众投票亭。用户选择总统候选人,然后点击提交。现在下一个选民去信息亭,按下后退按钮并查看前一个用户选择的候选人,因为浏览器甚至没有尝试从服务器获取最新版本并从缓存中显示他的。那我该怎么办?
    • 这意味着您的应用程序行为错误。事务、会话和类似的东西旨在处理对敏感数据访问的限制。当 webapps 说“记得关闭你的会话”时,他们是认真的!此外,如果您的应用程序将机密数据放在浏览器的缓存中,则意味着您正在打开一个新的安全漏洞。简单明了(除非你加密它!)。您不能依赖对浏览器数据的未经授权的修改(根据定义,它在用户端)以提供安全性。太像 DRM,将所有安全性放在同一侧。
    【解决方案2】:

    expires 应该是日期+时间戳,并且缓存控制的“must-revalidata”和“max-age”也可能有帮助?

    Expires: Wed, 11 Jan 1984 05:00:00 GMT
    Cache-Control: no-cache, must-revalidate, max-age=0
    

    【讨论】:

    • 其实答案就是这么简单。但我想了解其他人。浏览器不缓存页面,它们缓存请求。因此,如果您有一页 Test.aspx 带有一个指向自身的链接。用户首先打开页面,然后单击链接(此处添加了 no-cache),然后按返回按钮,页面将从缓存中检索,因为第一次下载时没有 no-cache 指令
    • 好吧,浏览器缓存响应,通常是页面,不是吗?如果我没记错的话,即使在第一次请求时,“no-cache”也已经在 http 响应标头中。
    • 还应该包括Cache-Control: no-store 用于谷歌浏览器。
    【解决方案3】:

    对我来说,标题中的以下设置有效:

    编译指示:无缓存

    缓存控制:无缓存,无存储

    过期:0

    【讨论】:

      猜你喜欢
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 2013-11-14
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 2011-12-26
      相关资源
      最近更新 更多