使用Codeigniter安全存储会话数据?

时间:2014-04-09 14:04:42

标签: php codeigniter security session user-data

对于我的所有项目,我使用codeigniter作为我的框架。我总是使用会话来获取像user_string和user_permissions这样的商店,以确定谁可以访问网站中的某些功能和页面。

使用session->userdata作为提供用户唯一内容的基础是不好的做法吗?

我通常会在用户登录时为其设置一个userdata数组,如下所示:

$data = array('id' => $user_string, 
              'g' => $user_group);

$this->session->set_userdata($data);

当我确定他们为查询获得的结果时,我可能会执行以下操作:

function get_posts(){
    if( $this->session->userdata('g') == 2 ){
        $data = $this->db->get_where('posts', array('' => $this->session->userdata('id') ) )->result_array();
        return $data;
    }
}

由于session->userdata('id')session->userdata('g')

,此代码是否容易受到攻击

非常感谢任何评论。

1 个答案:

答案 0 :(得分:0)

只要做一个想法: -  将密钥保存到您的应用程序/ config / config.php,打开文件并设置

$config['encryption_key'] = "YOUR KEY";

$this->load->library('encrypt');

data = array('id' => $this->encrypt->encode($user_string), 
              'g' => $this->encrypt->encode($user_group),

);

$this->session->set_userdata($data);

获取数据时: -

function get_posts(){
    if( $this->session->userdata('g') == 2 ){
          $id =$this->encrypt->decode($this->session->userdata('id') );
        $data = $this->db->get_where('posts', array('' =>  $id ) )->result_array();
        return $data;
    }
}