Codeigniter - 活动记录是否容易受到SQL注入?

Nis*_*ani 1 mysql activerecord sql-injection codeigniter

只是在堆栈溢出时读取这个,因此让我想知道是否可以通过CI中的活动记录进行SQL注入.

在我的项目的大多数地方,为了用户注册和用户配置文件更新,我已经完成了这样的SQL插入:

控制器:

$name = $this->input->post('name');
$last_name = $this->input->post('last_name');
$age = $this->input->post('dob');

$user_data = array(
    'name' => $name,
    'last_name' => $last_name,
    'age' => $age
);

$this->user_model->add_user_function($user_data);
Run Code Online (Sandbox Code Playgroud)

模型:

function add_user_function($data)
{
    $this->db->insert('user_table',$data);
    return;
}
Run Code Online (Sandbox Code Playgroud)

就像上面SO链接中的示例一样,我的代码是否可以用于SQL注入?
如果可能损害我的系统,你能给出一个特定的例子,如果它存在,我该如何防止它.

Dhr*_*hak 8

CodeIgniter已为您的案例提供了2种安全功能.

  1. 用户输入的XSS过滤: 输入类具有其方法的第二个布尔参数,这使您可以通过XSS过滤器运行输入,以防您没有打开全局xss过滤器.

  2. 对于SQL注入,使用绑定查询和活动记录是安全的,它将使您免于SQL注入,因为框架完成了逃避易受攻击的用户输入的所有工作.用户报告的Active记录漏洞很少,但在CodeIgnitor团队(EllisLabs)的后续版本中很快就会被修复.