【问题标题】:javascript: history.go(1) required to preserve ASP sessions?javascript: history.go(1) 需要保留 ASP 会话?
【发布时间】:2011-11-19 10:58:56
【问题描述】:

我继承了一个经典的 ASP 应用程序,前作者声称:

 正文 onload="javascript: history.go(1);"

需要防止网站“丢失会话”

有人听说过这个怪癖吗?我想不通。

【问题讨论】:

  • 我从未听说过这样的事情,对我来说听起来很假。
  • 代码是否在执行任何类型的 History.back 或 history.go(-n)?
  • 我已经看到这被用作防止某人按下后退按钮的一种方式,但这是一种实用的方法吗?有没有更新、更有效的方法?
  • 新的、更有效的方法是永远不要尝试破坏后退按钮。您不能可靠地做到这一点,您的用户将有理由讨厌您。如果您有一个应用程序问题,您认为解决方法是破坏后退按钮,那么您遇到的问题要大得多。

标签: javascript session asp-classic


【解决方案1】:

听起来老开发者试图阻止用户使用前进/后退浏览器按钮进行导航。如果应用程序的设计初衷不是让用户四处跳动,那么突然从意外页面提交表单绝对会破坏会话。

将 history.go(1) 放在每个文档的脚本标签中,会强制浏览器重复跳转到最后访问的页面。

【讨论】:

    【解决方案2】:

    不,这不会阻止会话 (a) 过期或 (b) 丢失识别它们的浏览器 cookie。这是“丢失会话”的两个原因。正如您在 cmets 中指出的那样,这通常是为了破解禁用后退按钮。它今天仍在使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      相关资源
      最近更新 更多