有一种方法可以让一个人一旦注销但是点击“返回”按钮就不会呈现页面?

我有一些需要登录并显示敏感信息的网站。

用户进入页面,提示登录,然后查看信息。

该人员退出该网站,并被重定向回登录页面。

然后该人员可以“回”并返回到包含敏感信息的页面。 由于浏览器只是将其视为呈现的HTML,所以它向他们展示没有问题。

当用户从登出的屏幕点击“后退”按钮时,有没有办法阻止显示这些信息? 我并不是试图禁用后退按钮本身,我只是试图让敏感信息不再显示,因为该人没有登录到网站了。

为了说明方便,上面的站点/场景位于带有Forms身份验证的ASP.NET中(因此,当用户转到第一个页面(他们想要的页面)时,他们被重定向到登录页面 - 以防万一差异)。


简单的答案是它不能安全地完成。

但是,有很多技巧可以实现,以便用户难以反击并获取敏感数据。

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(Now.AddSeconds(-1));
Response.Cache.SetNoStore();
Response.AppendHeader("Pragma", "no-cache");

这将在客户端禁用缓存,但所有浏览器都不支持

如果您可以选择使用AJAX,则可以使用从客户端代码更新的更新面板来检索敏感数据,因此,除非客户端仍然登录,否则在按下后不会显示敏感数据。


缓存和历史是独立的,不应该互相影响。

银行唯一的例外是HTTPS和Cache-Control: must-revalidate在历史导航时Cache-Control: must-revalidate强制刷新。

在普通的HTTP中,除了利用浏览器错误之外,没有办法做到这一点。

你可以使用JavaScript检查document.cookie并在设置“杀手级”cookie时重定向,但我想如果浏览器没有完全按预期设置/清除cookie,这可能会严重错误。


来自aspdev.org:

在Page_Load事件处理程序的顶部添加以下行,并且您的ASP.NET页面不会缓存在用户浏览器中:

Response.Cache.SetCacheability(HttpCacheability.NoCache)

设置这个属性可以确保如果用户点击后退按钮,内容将会消失,如果他按下“刷新”,他将被重定向到登录页面。

链接地址: http://www.djcxy.com/p/55731.html

上一篇: Is there a way to keep a page from rendering once a person has logged out but hit the "back" button?

下一篇: c#