2012-07-09 216 views
3

我目前正在研究解决我遇到的问题的最佳方法,并且想知道您是否可以提供帮助。浏览器注销后退按钮

我在我的网站中有一个用户配置文件部分,我想让它更安全一些。

我有一个问题,当用户登录时,如果他们点击后退按钮,它会将他们带回登录页面,但他们仍然登录。我如何让他登录并将他们带到注销页面?

感谢您的帮助

+0

您是否尝试将缓存控制设置为不缓存?即response.setHeader(“Cache-Control”,“no-cache”); – Misha 2012-07-09 15:50:01

+2

如果我是对的,你可以在会话中保存用户数据。当您按下后退按钮时,会话中将包含用户数据,因此这是基本行为。问题在于,如果用户选择注销,按后退按钮,他/她的所有数据仍然在网上。 – 2012-07-09 16:09:34

+0

他们如何登录或注销?我使用PHP来做这件事,我只是做一些事情,如果我所在的页面是登录页面,会自动执行注销操作。 – emilyk 2012-07-09 21:47:41

回答

0

我不确定您是否在尝试做正确的事情。用户知道并使用后退按钮,如果该按钮将他们带回到他们之前正在做的事情中,则对他们有帮助。让用户自动登录用户可以打破关于Web应用程序如何工作的一些基本假设,我不建议您这样做。

此外,问题比你想象的更糟糕。您提到了使用后退按钮的用户,但是如果用户使用右键单击 - 在新增选项卡中打开以打开查看您的应用程序的多个选项卡,然后在选项卡之间来回切换?

这就是说,这里是一种方法,你可以实现你想要的。您需要跟踪服务器上用户会话中最近浏览过的页面。每次获得新请求时,都要与会话中的缓存值进行比较,如果不是可以在此导航的页面,请清除该会话并显示登录页面。另一种实现方法是在每个页面显示时生成一个密钥(一个大的随机数将会执行),并在后续请求中传递该密钥,并且当请求任何页面并且没有最近的密钥时清除会话并显示登录页面。