2016-06-18 4 views
0

私は1つのアプリケーションを完成させましたが、開発中にSQLインジェクションについてチェックしていないのに、最後にこの小さな問題を修正する必要があります。Codeigniter php:SQL injection prevent

ここに私のコードがありますが、どうやって簡単に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; 
} 

ありがとうございます!

答えて

1

使用CodeIgniterのquery builder class

コードは次のようになります。 >( 'アーティスト') - - >ここで、( 'ユーザ名'、$ユーザ名) - >ここで、( 'パスワード'、$パスワード

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

より "甘い" 構文がよります$ this-> DB->だろう) - > get(); –

+0

このクエリが認証用である場合は、クエリに制限を追加することもできます。 –

0

使用db->escape()db->escapestr()機能、SQLインジェクションを避けるために...