由于我确定您已经知道,您无法直接禁用浏览器上的“返回”按钮。
防止用户回头的唯一方法依赖于将页面设置为缓存或涉及使用JavaScript。基于这些都不适合你的事实,没有解决方案来管理这一点。我查看了多年来的许多文章,并重新搜索了几次,所有建议都使用客户端脚本或缓存。
我的建议是在你的情况下使用缓存禁用方法,并看看你的用户界面如何回应“后退”按钮,看看你是否可以对设计进行更改以使其更平滑。这可能涉及检查会话变量,或检查用户是否仍然通过身份验证,但根据您的要求,我相信您运气不佳。
总之,你将需要选择两个邪恶中的较小者。
- 使用页面缓存将确保人们无法使用“后退”按钮,在所有不使用JavaScript - 大概是更好的安全性
- 使用JavaScript来删除注销页面的历史将允许您以防止用户从退出后返回,但有人开启了noscript,或者有人恶意可以禁用您的控制。
你没有详细说明你想保护谁,但是如果我猜对了,而且你担心用户在注销后离开他们的电脑,但没有关闭浏览器窗口,那么Javascript真的是一个问题吗?
思考一下,这样做的人的类型是不考虑如何恶意使用信息。大概是恶意的人,已经“像坏人一样思考”,并且知道足以关闭浏览器窗口。
任何一个选项都可以通过拦截/改变http头,javascript等的恶意软件绕过,所以两者都不是100%有效。我看到的唯一区别是,javascript选项可以通过改变html在线路上传输(使用Fiddler或恶意软件等)并通过简单地禁用Javascript来打破。所以页面缓存选项为稍微有点更好的安全目的。
使用HTTPS,而不是普通的HTTP与头的方法组合提供了更多的保护,使其多更有效,因为它大大增加了跨线操纵数据的困难,它不是禁用只需禁用JavaScript即可。
无论哪种方式,我认为你需要衡量你的选择,并选择其中一个。看起来很伤心,我们只能做很多事情来保护用户不受他们自己的伤害。
这是行不通的。该页面仍然保存在浏览器历史记录中,即客户端,因此如果页面缓存未设置,您仍然可以回到该页面。 – David 2012-03-22 13:32:20