【发布时间】:2012-05-17 17:17:42
【问题描述】:
我不希望用户在注销后通过单击返回按钮返回到受保护的页面。在我的注销代码中,我正在取消设置会话并重定向到登录页面。但是,我认为浏览器正在缓存页面,因此尽管会话从注销中被破坏,它仍然可见。
我可以通过不允许浏览器缓存来避免这种情况
header("Cache-Control", "no-cache, no-store, must-revalidate")
但是这样我就失去了浏览器缓存的优势。
请提出一个更好的方法来实现这一点。我觉得,javascript客户端一定有办法处理这个问题
【问题讨论】:
-
您不必禁用任何东西。如果他们返回,则会为他们提供受限制页面的缓存版本。如果他们试图点击它,什么都不会起作用,因为不会设置适当的会话。
-
@N.B.一种可能的解决方案可能不一定总是可用,因为用户可能在他的显示器上有敏感数据然后注销。另一个过来(尽管工作站应该被锁定;))并按下并查看(尽管缓存)前一个用户的数据。我们通常会添加一条信息消息,提醒用户关闭浏览器(只是为了确保所有会话都已清除)。这不一定是最好的方法,但至少您向用户提供了有关潜在问题的信息。
-
如果所有其他方法都失败了,一个廉价的修复方法是在注销页面上显示“出于安全原因请关闭此窗口”消息。
标签: php javascript jquery