有一种方法可以让一个人一旦注销但是点击“返回”按钮就不会呈现页面?
我有一些需要登录并显示敏感信息的网站。
用户进入页面,提示登录,然后查看信息。
该人员退出该网站,并被重定向回登录页面。
然后该人员可以“回”并返回到包含敏感信息的页面。 由于浏览器只是将其视为呈现的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#