代码之家  ›  专栏  ›  技术社区  ›  Caveatrob

在所有页面上设置内容过期以避免ASP Classic中的“后退”按钮

  •  0
  • Caveatrob  · 技术社区  · 15 年前

    有没有办法在ASP Classic中将页面设置为过期,这样用户就不能回击并重新执行任何操作?

    这是个好习惯吗?

    2 回复  |  直到 12 年前
        1
  •  1
  •   Andrew Barber Eric Lafortune    15 年前

    如果您强制页面“过期”,则会产生相反的效果:它实际上会强制浏览器再次发出请求(因为它被告知数据已过期)

    不过,我怀疑你可能找错地方了。“执行任务”的页面是否使用查询字符串值作为执行这些操作的参数?换句话说,链接到“action”页面的页面是通过URL中带有查询字符串参数的常规锚定标记,还是通过使用GET方法的表单?

    如果是这样,您应该将提交该操作的表单更改为POST表单。这样做不仅会在用户使用“后退”或“刷新”按钮尝试重新加载该页面时在浏览器中出现提示,而且有助于防止跨站点请求伪造攻击。(有关XSRF的更多信息) here

        2
  •  1
  •   skolima    15 年前

    你想解决的问题是什么?如果“上一步”按钮强制在服务器上更新某些内容,那么最好确保浏览器历史记录中不允许出现可能导致问题的页面。

    在一篇文章之后,我经常做一个响应。重定向使文章不在浏览器历史记录中。这有助于避免此类问题。

    推荐文章