Codeigniter/PHP会话安全问题

Cas*_*ynn 8 php session codeigniter session-cookies

我正在使用Codeigniter开发Web应用程序.当用户使用我的网站进行身份验证时,我当前正在将我的"用户标识符"存储在我的会话cookie中(我已启用加密).我的几个模型类使用session/cookie的'user-identifier'参数中的值来更改用户帐户的属性.

我担心的是,我想知道某人是否有可能使用我设置的用户标识符来获取有效的codeigniter-session cookie,将user-identifier的值更改为其他用户的值,然后进行更改另一个用户的帐户.如果有人试图更改会话cookie的属性,codeigniter/php会话会产生错误吗?

arn*_*slu 21

打开/application/config/config.php,找到"sess_use_database"并将其更改为"TRUE"(如果还没有).这样,所有会话变量都将存储在数据库表中,而会话cookie将只包含会话ID字符串.

为了增加安全性,您还可以将"sess_match_ip"更改为TRUE.这样,如果某人窃取了您用户的cookie并尝试将其作为自己的cookie传递,则会话将被销毁.

  • 从最新的CodeIgniter 3.0.1开始,`sess_use_database`名称已替换为`sess_driver`,可以设置为`database`.最新的文档声称默认的`file`驱动程序是最安全的选择:http://www.codeigniter.com/user_guide/libraries/sessions.html (3认同)