【问题标题】:Codeigniter php: SQL injection preventCodeigniter php:防止 SQL 注入
【发布时间】:2016-06-18 21:54:10
【问题描述】:

我已经完成了一个应用程序,但是在开发时没有检查 sql 注入,现在最后,我需要解决这个小问题。

这是我的代码,我怎样才能以最简单的方式解决这个问题以防止 sql 注入(是否有任何功能只是格式化我的用户名、密码参数,而不是更改我的代码)。

public function getArtistByUsernameByPassword($username, $password) {
    $query = $this->db->query("SELECT * FROM artists WHERE username = '$username' AND  password = ' $password'");
    if ($query->num_rows() > 0) {
        return $query->row_array();
    }
    return null;
}

提前致谢!

【问题讨论】:

    标签: php sql database codeigniter code-injection


    【解决方案1】:

    使用 Codeigniter 的 query builder class

    所以你的代码看起来像这样。

    $query = $this->db->get_where('artists', array('username' => $username, 'password' => $password));
    

    【讨论】:

    • 更“含糖”的语法是 $this->db->from->('artists')->where('username',$username)->where('password', $password)->get();
    • 如果此查询用于身份验证,您可能还想为查询添加限制。
    【解决方案2】:

    使用db->escape()db->escapestr()函数来避免sql注入...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 2017-11-11
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多