网页安全脚本与Codeigniter.我的思路对吗?



我正在创建一个功能来保护我的管理页面,如果用户没有登录。我做得对吗?以下功能包含在我所有的管理页面中。

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

    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);
       } 
}

使用这里的代码,有可能在没有意图的情况下授予权限。这不太可能,但如果由于某种原因,在您的代码中存在逻辑错误(不是语法错误),则无法重定向,而其他2则失败。

我建议使用if.. elseif.. elseif.. else。最后的else是重定向到login,作为failsafe。

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

最新更新