【问题标题】:how to remove browser history in codeigniter?如何在codeigniter中删除浏览器历史记录?
【发布时间】:2012-04-20 14:21:49
【问题描述】:

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

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

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

提前致谢

【问题讨论】:

    标签: php codeigniter session logout browser-history


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        猜你喜欢
        • 2011-02-03
        • 2010-09-22
        • 2010-10-20
        • 1970-01-01
        • 2023-03-13
        • 2017-11-02
        • 1970-01-01
        • 2011-08-16
        • 2011-11-14
        相关资源
        最近更新 更多