首页 > 解决方案 > 如何防止登录时的sql注入

问题描述

如何在管理员登录中添加 SQL 注入功能?

C_Log_Funtion

function index(){
        if (isset($_POST['submit'])){
            $username = $this->input->post('a');
            $password = hash("sha512", md5($this->input->post('b')));
            $cek = $this->model_app->cek_login($username,$password,'users');
            $row = $cek->row_array();
            $total = $cek->num_rows();
            if ($total > 0){
                $this->session->set_userdata('upload_image_file_manager',true);
                $this->session->set_userdata(array('username'=>$row['username'],
                                   'level'=>$row['level'],
                                   'id_session'=>$row['id_session']));

                redirect('administrator/home');
            }else{
                $data['title'] = 'Username or Password salah!';
                $this->load->view('administrator/view_login',$data);
            }
        }else{
            $data['title'] = 'Administrator › Log In';
            $this->load->view('administrator/view_login',$data);
        }
    }

我做了一个这样的功能,但注射了,有解决办法吗?

标签: codeigniter-3

解决方案


我目前正在尝试向表单添加 codeigniter 默认安全功能

安全性->sanitize_filename

$username = $this->security->sanitize_filename($this->input->post('a',TRUE));
$password = $this->security->sanitize_filename(hash("sha512", md5($this->input->post('b',TRUE))));

到目前为止,我的网站上没有任何注射。


推荐阅读