我使用以下代码在CodeIgniter中进行身份验证。
if(empty($this->session->userdata('user_id'))){
redirect(base_url());
}
再次阅读文档后,我发现Codeigniter还有另外一个功能。
if(!($this->session->has_userdata('user_id'))){
redirect(base_url());
}
如果两个代码相同或我的代码存在安全问题?
答案 0 :(得分:1)
两者都是不同的功能&他们都有自己的用法。
第二种是更好的选择,因为它会检查
user_data
是否有user_id
密钥&因此在较少的代码上运行(但它是遗留函数,你应该使用isset($_SESSION[$key])
而不是它。)
第一个: -
if(empty($this->session->userdata('user_id'))){
redirect(base_url());
}
它访问user_id
数组中userdata
数组中session
键的值。
第二个: -
if(!($this->session->has_userdata('user_id'))){
redirect(base_url());
}
检查user_id
密钥是否存在。
注意:强>
has_userdata($key)
是一种遗留方法,仅用于向后兼容旧版应用程序。它只是isset($_SESSION[$key])
的别名 - 请改用它。如果指定的密钥存在,则返回TRUE,否则返回FALSE