【问题标题】:Codeigniter Auth system based on device基于设备的Codeigniter Auth系统
【发布时间】:2015-10-11 06:48:43
【问题描述】:

我是这里的新手,所以希望我做得很好。

我最近开始使用 Codeignter,并尝试构建安全登录以限制仅来自三台设备的访问。

登录时 我正在尝试在成功验证后添加一个永不过期的“device_id”cookie。该 cookie 将是一个唯一的字符串并将其存储到数据库中

如果用户已经存储了三个设备以被拒绝。 如果用户有可用的设备插槽,这将被记录并添加到其堆栈中。 基本上,如果用户有可用插槽或 cookie 存在,我想允许访问。

有什么想法我应该从哪里开始,或者有一个 Codeigniter 库吗?

我的控件允许和验证登录的代码是:

function login()
    {
        if ($this->session->userdata('logged_in'))
        {
            $logged_in_user = $this->session->userdata('logged_in');
            if ($logged_in_user['is_admin'])
            {
                redirect('admin');
            }
            else
            {
                redirect(base_url());
            }
        }

        // set form validation rules
        $this->form_validation->set_error_delimiters($this->config->item('error_delimeter_left'), $this->config->item('error_delimeter_right'));
        $this->form_validation->set_rules('username', lang('users input username_email'), 'required|trim');
        $this->form_validation->set_rules('password', lang('users input password'), 'required|trim|callback__check_login');

        if ($this->form_validation->run() == TRUE)
        {
            if ($this->session->userdata('redirect'))
            {
                $redirect = $this->session->userdata('redirect');
                $this->session->unset_userdata('redirect');
                redirect($redirect);
            }
            else
            {
                $logged_in_user = $this->session->userdata('logged_in');
                if ($logged_in_user['is_admin'])
                {
                    redirect('admin');
                }
                else
                {
                    redirect(base_url());
                }
            }
        }

        // setup page header data
        $this->add_css_theme( 'login.css' );

        $this->set_title( lang('users title login') );

        $data = $this->includes;

        // load views
        $data['content'] = $this->load->view('user/login', NULL, TRUE);
        $this->load->view($this->template, $data);
    }

【问题讨论】:

  • 编写你的系统不是一个好主意......你不能很容易地保护你免受会话劫持、dos攻击、ddos攻击等......

标签: php codeigniter cookies


【解决方案1】:

编写您的系统不是一个好主意....您无法保护您的身份验证系统免受会话劫持(当 session_id 长时间不更改时)、dos 攻击、ddos 攻击等非常容易......最好使用早期编写的系统,如 auth_ion ....

您可以在以下位置找到代码点火器的身份验证库:

https://github.com/bcit-ci/CodeIgniter/wiki/Contributions#libraries

我更喜欢该列表中的 ion_auth ...

【讨论】:

    猜你喜欢
    • 2022-10-24
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多