1

您好我正在开发一个项目(PHP-CodeIgniter,MySQL)。在我的应用程序中,我在用户成功登录后为用户数据(用户 ID、用户名)创建会话,并在注销后取消设置会话。

“这是主要问题,如果我点击浏览器的后退按钮,我也可以在注销后在我的应用程序中看到以前访问过的页面”。

如何使用 codeigniter 防止这种情况发生?

提前致谢

4

3 回答 3

7

有一些 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

即使这样,我也不确定是否所有浏览器都会遵守标题,但这是一个好的开始。

于 2012-04-07T08:04:09.373 回答
1

登出时虽然可以访问上一页但不能进行活动。如果您执行任何活动,它应该首先将您重定向到登录页面。

于 2012-04-07T06:59:58.837 回答
0

只需在.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)添加它,它会影响整个应用程序。

于 2012-07-12T10:27:02.630 回答