您好我正在开发一个项目(PHP-CodeIgniter,MySQL)。在我的应用程序中,我在用户成功登录后为用户数据(用户 ID、用户名)创建会话,并在注销后取消设置会话。
“这是主要问题,如果我点击浏览器的后退按钮,我也可以在注销后在我的应用程序中看到以前访问过的页面”。
如何使用 codeigniter 防止这种情况发生?
提前致谢
您好我正在开发一个项目(PHP-CodeIgniter,MySQL)。在我的应用程序中,我在用户成功登录后为用户数据(用户 ID、用户名)创建会话,并在注销后取消设置会话。
“这是主要问题,如果我点击浏览器的后退按钮,我也可以在注销后在我的应用程序中看到以前访问过的页面”。
如何使用 codeigniter 防止这种情况发生?
提前致谢
有一些 JavaScript 方法可以停止使用后退按钮(正如 Raheel 所提到的),但是对这种行为的可靠控制可能很棘手。例如,如果用户在一个页面上并且可以看到它,那么没有什么可以阻止他们截屏。
您还应该确保发送正确的标头以停止缓存页面:
$this->output->set_header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");
$this->output->set_header("Cache-Control: post-check=0, pre-check=0", false);
$this->output->set_header("Pragma: no-cache");
来源:http ://codeigniter.com/forums/viewthread/137096/#675799
即使这样,我也不确定是否所有浏览器都会遵守标题,但这是一个好的开始。
登出时虽然可以访问上一页但不能进行活动。如果您执行任何活动,它应该首先将您重定向到登录页面。
只需在.htaccess
之后添加这些行RewriteEngine on
<Files *>
Header set Cache-Control: "private, pre-check=0, post-check=0, max-age=0"
Header set Expires: 0
Header set Pragma: no-cache
</Files>
我更喜欢这个,因为我们只需要在一个地方(.htaccess
)添加它,它会影响整个应用程序。