【发布时间】:2014-04-09 14:04:42
【问题描述】:
对于我的所有项目,我都使用 codeigniter 作为我的框架。我总是使用会话来获取诸如 user_string 和 user_permissions 之类的存储内容,以确定谁可以访问站点内的某些功能和页面。
使用session->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') 而易受攻击?
非常感谢任何评论。
【问题讨论】:
-
你可以用这个,不用担心!!为了获得额外的安全性,请在您的配置文件中将 sess_encrypt_cookie 设置为 true
-
不确定你说的是session fixation、Code Igniter 的实现还是会话的整个概念:-?
-
@ÁlvaroG.Vicario 这只是为了确定我在做什么是正确的和好的做法?只是这样我才不会在我的代码中引入坏习惯。
标签: php codeigniter security session user-data