php安全地检索会话数据

时间:2012-06-24 00:14:10

标签: php session security

我正在哈希密码,在读取会话数据时匹配用户代理,以及安全登录用户所需的一切。我对安全检索/读取会话数据的方式感兴趣。例如,我正在使用一个从会话数据数组中获取用户ID的函数......

在db表中:

a:6:{s:9:"user_data";s:0:"";s:7:"user_id";s:1:"3";s:9:"firstname";s:4:"Tina";s:8:"lastname";s:3:"Fey";s:8:"username";s:8:"lizlemon";s:6:"status";s:1:"1";}

功能(Codeigniter):

    function get_user_id()
    {
        if (is_numeric($this->ci->session->userdata('user_id'))) 
        {
            return $this->ci->session->userdata('user_id');
        }
        else
        {
            exit();
        }
    }

我只是检查id是否为数字。我们是否应该担心检索会话数据,即使它已安全地添加到数据库中?

1 个答案:

答案 0 :(得分:4)

你应该从不编写自己的会话处理程序。使用sesion_start()$_SESSION[]超级全局。这也打开了使用PHP security session features的大门,例如cooke_secure,http_only cookie和use_only_cookies。

session_start()生成一个非常安全的会话ID,它是一个加密的nonce。您可以将PHP配置为从/dev/urandom中提取此值,这是一个非常安全的熵池,可能是生成会话ID的最佳方法。