【问题标题】:How CodeIgniter keeps session data even when browser closes?CodeIgniter 如何在浏览器关闭时保留会话数据?
【发布时间】:2011-07-15 10:10:00
【问题描述】:

我想知道会话在 CodeIgniter 中是如何工作的。浏览器关闭时会话是否会自动销毁? CodeIgniter 默认不会在浏览器关闭时销毁会话:

$config['sess_expire_on_close'] = FALSE;

我们可以设置会话过期时间:

$config['sess_expiration']      = 7200;

现在例如如果我将过期时间设置为0,只要我不自己破坏它就会保持会话:

$this->session->sess_destroy();

那么 CodeIgniter 如何将会话信息保留特定时间,即使在浏览器关闭之后?

另外,如果使用此默认设置(不使会话过期并关闭浏览器)来保持用户登录几天是否安全? (例如,存储在会话 'logged_in' => TRUE 中)

【问题讨论】:

    标签: php session codeigniter cookies


    【解决方案1】:

    CodeIgniter 中的会话不使用默认的 PHP $_SESSION。它使用自己的 cookie 实现。这就是为什么当您关闭浏览器时它不会被破坏。您还可以在 CodeIgniter 中使用带有选项 $config['sess_use_database'] = TRUE; 的数据库会话以及您可以在此处找到的其他内容:http://codeigniter.com/user_guide/libraries/sessions.html

    【讨论】:

    • 是的,我也是这么想的,但我并不完全清楚。它在任何框架或语言中都是经典的——在当前的 HTTP/HTML 中,我们只有 cookie 作为马马虎虎的会话处理程序。什么时候变成状态? :(
    • @TrexXx 感谢您的回复。一般来说,与会话相比,使用 cookie 是非常不安全的。那么CodeIgniter的实现是不是不安全呢?
    • 文档说如果您的应用程序需要强大的安全性,最好使用带有数据库的会话。而且很容易设置,只需要根据需要创建表并像往常一样使用会话类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多