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

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

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

有没有人有任何建议,以便他们可以使用应用程序中的浏览器后退按钮,但一旦注销,他们就无法返回应用程序?

有帮助吗?

解决方案

是为了防止非认证用户从暗中访问之前使用过的电脑,看到什么身份验证的用户在做的目的是什么?如果是后者,那么你应该将用户重定向到具有window.close注销页面();与有关此是一个的要求强语言沿着命令。现在,这是不是铁定的:将IE的的,如果他们愿意让应用程序关闭窗口,其他浏览器完全忽略请求的用户。然而,在正确的安全环境中,我认为它确实提供了一个显著除了你的安全策略 - 尽管是一个主要的文化品种(它有助于培养成员遵守的规则)

如果你想“一次性通过,和你做”安全类型,那么恐怕锁定了高速缓存或将“window.forward()”在每个页面(这可以阻止所有使用后退按钮)是你唯一的选择。

另外一件事情:AJAX提供了一些工具,帮助为好。你可以把一个更新面板上的敏感信息,并有JavaScript的触发更新面板刷新页面加载。由于这会回去到服务器,未经身份验证/过期的用户将被拒之门外。这是一个相当显著的工作量承担,但我想我会扔在那里。

其他提示

YUI提供了一种容易地控制浏览器的历史以编程冲URL输入到历史。看看YUI的浏览器历史记录经理。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top