【问题标题】:PHP: Need to Expire Sessions for my webapp, when back button is pressedPHP:当按下后退按钮时,我的 web 应用程序需要过期会话
【发布时间】:2009-12-10 07:23:51
【问题描述】:

我们正在开发一个关键任务 Web 应用程序,我们希望在用户按下浏览器后退按钮时使应用程序的会话过期。

请帮我解决我的问题。

提前致谢。

【问题讨论】:

  • 真的有必要让会话过期吗?人们习惯于使用返回按钮。
  • 秋葵汤+1。如果您的应用无法处理后退按钮,则说明您做错了。甚至很容易出错,在某些浏览器上切换选项卡和后退/前进的键盘快捷键非常相似。
  • 是的,我们的应用程序需要使会话过期,当用户按下返回按钮时,这是它从我们的客户那里得到的概念。
  • 好吧,告诉您的客户返回按钮是用于导航目的,而不是用于退出应用程序(尽管它可能看起来像)
  • 感谢您的即时回复,但是当我们导航返回按钮时,他们是否无法使会话过期?请提供任何提示或提示。

标签: php security web-applications


【解决方案1】:

我看到的问题是,如果有人使用后退按钮来纠正错误,他们不会很高兴不得不重新登录以重新输入/重新执行他们认为已经完成的任何事情.

如果您对这个巨大的可用性问题、UI 不一致和破坏用户的习得行为感到满意...

    $this_page = $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];
    $history[] = $this_page;

/* assuming you're continually passing the $history variable
to subsequent pages via post, get, Ajax... */

    if (in_array($this_page, $history)) {

      // end session

    }

    else {

      // continue/maintain session

    }

如果您需要通过按下特定按钮来结束会话 - 而不是简单地将当前页面与浏览器历史记录中的页面进行比较 - 我建议使用 JS/jQuery。我相信退格键是键 8,但我的 JS 仍然很糟糕,所以我无法提供任何真正的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多