【问题标题】:Browser logout on back button后退按钮上的浏览器注销
【发布时间】:2012-07-09 01:25:05
【问题描述】:

我目前正在研究解决我遇到的问题的最佳方法,想知道您是否可以提供帮助。

我的网站中有一个用户个人资料部分,我想让它更加安全。

我有一个问题,当用户登录时,如果他们点击后退按钮,它会将他们带回登录页面,但他们仍处于登录状态。我怎样才能让它注销用户并将他们带到退出页面?

感谢您的帮助

【问题讨论】:

  • 您是否尝试将缓存控制设置为无缓存?即 response.setHeader("Cache-Control","no-cache");
  • 如果我是对的,您将用户数据保存在会话中。当您按下后退按钮时,会话中将包含用户数据,这是基本行为。问题是如果用户选择注销,按下后退按钮,他/她的所有数据仍然在网络上。
  • 他们是如何登录或注销的?我为此使用php,如果我所在的页面是登录页面,我会做一些事情,自动执行注销操作。

标签: java session jsf


【解决方案1】:

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

此外,问题比您想象的要严重。您提到了使用返回按钮的用户,但是使用右键单击打开新选项卡打开多个选项卡查看您的应用程序,然后在选项卡之间来回切换的用户呢?

话虽如此,这里有一种方法可以实现你想要的。您需要在服务器上的用户会话中跟踪最近查看的页面。每次收到新请求时,与会话中的缓存值进行比较,如果它不是可以在此处导航的页面,则清除会话并显示登录页面。实现相同目的的另一种方法是在显示每个页面时生成一个密钥(一个大的随机数会这样做),该密钥会在后续请求中传递,并且当请求任何页面并且它没有最新的密钥时清除会话并显示登录页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2017-01-18
    • 2015-04-21
    • 1970-01-01
    • 2020-02-16
    • 2013-07-20
    • 2015-09-28
    相关资源
    最近更新 更多