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

时间:2010-09-22 23:05:35

标签: asp-classic

有没有办法将页面设置为在ASP Classic中过期,以便用户无法回击并重新执行任何操作?

这是一个好习惯吗?

2 个答案:

答案 0 :(得分:1)

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

我怀疑你可能会在这里咆哮错误的树。使用查询字符串值“执行操作”的页面是否可以采取这些操作的参数?换句话说,链接到“操作”页面的页面是通过URL中的查询字符串参数的常规锚标记,还是通过使用GET方法的表单链接到“操作”页面?

如果是这样,您应该将提交该操作的表单更改为POST表单。这样做不仅会导致浏览器出现提示,如果此人使用“后退”或“刷新”按钮尝试重新加载该页面,还可以帮助保护您免受跨站点请求伪造攻击。 (关于XSRF的更多信息here

答案 1 :(得分:1)

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

POST后,我经常做一个Response.Redirect,以便POST不在浏览器历史记录中。这有助于避免这些类型的问题。