使用Codeigniter的页面安全脚本。我是沿着正确的轨道吗?

时间:2011-11-25 16:30:20

标签: security model-view-controller codeigniter login admin

如果用户未登录,我正在创建一个保护管理页面的功能。我是否以正确的方式进行操作。我的所有管理页面都包含以下功能。

在让我的管理页面访问安全页面之前,我还应该检查什么?

    function is_logged_in_admin()
    {
    $CI =& get_instance();
    $is_logged_in = $CI->session->userdata('is_logged_in');
    $username = $CI->session->userdata('username');
    $status = $CI->session->userdata('status');
       if(!isset($is_logged_in) || $is_logged_in != true)
       {
       redirect('auth/login',location);
       } 

    if(!$username == 'myeswr')
       {
       redirect('auth/login',location);
       } 

    if(!$status == '1')
       {
       redirect('auth/resend_activation',location);
       } 
}

1 个答案:

答案 0 :(得分:1)

使用此处的代码,可以无意地授予权限。它不太可能,但如果出于某种原因,在代码中某处存在逻辑错误(不是语法错误),如果#1,则不会重定向,而另外2个会失败。

我建议使用if.. elseif.. elseif.. else。最后一个是重定向登录,作为故障安全。

您可能还想检查登录长度(或仅使用CI的内置会话长度)。