代码之家  ›  专栏  ›  技术社区  ›  Jon

警告:页面已过期

  •  4
  • Jon  · 技术社区  · 16 年前

    我已经将以下代码添加到了我的母版页(页面加载),因此一旦用户注销,他们将无法使用后退按钮查看以前所在的页面。

     Response.Buffer = true;
     Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
     Response.Expires = -1;
     Response.CacheControl = "no-cache";
    

    问题是,我的用户希望能够在登录到应用程序时使用浏览器后退按钮。当我注释代码以不缓存页面时,他们可以使用后退按钮,但一旦他们注销,他们可以使用后退按钮查看上一页,这会造成安全风险。

    是否有人有任何建议,以便他们可以在应用程序中使用浏览器后退按钮,但一旦他们注销,他们就不能返回应用程序?

    3 回复  |  直到 16 年前
        1
  •  2
  •   Mark Brittingham    16 年前

    目的是防止未经身份验证的用户秘密访问以前使用过的计算机,并查看经过身份验证的用户正在做什么?如果是后者,那么您应该将用户重定向到一个具有window.close();命令的注销页面,以及关于该页面的强语言。 要求 . 这可不是铁皮的. 用户如果愿意让应用关闭窗口,其他浏览器完全忽略请求。但是,在适当的安全环境中,我认为它确实为您的安全政策提供了一个重要的补充——尽管主要是文化多样性(它帮助文化成员遵守规则)。

    如果您希望“一次性完成”安全性类型,那么恐怕锁定缓存或向每个页面添加“window.forward()”(这将阻止所有使用后退按钮)是您唯一的真正选择。

    另一件事是:Ajax也提供了一些有用的工具。您可以将敏感信息放在更新面板上,让页面加载javascript触发更新面板刷新。由于这将始终返回到服务器,未经身份验证/过期的用户将被拒绝。这是一个相当大的工作量,但我想我会扔出去。

        3
  •  0
  •   Ed Griebel    16 年前

    yui提供了一种轻松控制浏览器历史的方法,可以通过编程方式将URL输入历史。看看这个尤伊 Browser History 经理。