2017-06-08 12 views
0

コードイグナイタクエリがSQLインジェクションから安全であることを確認しようとしていますが、私が使用しているこれらのパラメータは、エスケープ/バインドされています。最も重要なことコードイグナイターSQLインジェクションとクエリ構造(同じ列名を持つ動的where句)

$inputArray = [1,2,3,4,5]; 
$this->db_name->select('a_column'); 
$this->db_name->from('a_table'); 
foreach ($inputArray as $item) { 
    $this->db_name->or_where('id',$item); 
} 

$query = $this->db_name->get(); 

、/バインド私の入力配列から一致するidがSQLインジェクションから保護するためにエスケープとして私がチェックしてるすべての項目がありますか?もしそうでなければ、このようなクエリでどのように構造化すべきですか?

私はこのクエリをどのように構成しているか気にしませんが、これに関するガイダンスは高く評価されます。実際、私はそれが本当に好きではありませんが、何らかの理由で私が使用していなかった場合は、簡単に別のデータベースシステムに切り替えることができるような方法でコードイグナイタを使用してクエリを構築していることを確認する必要があります私が今使用しているもの(例えば、mysqlからoracleへ) - 私は、単純なwhere節がおそらく決して変わらず、普遍的であることを理解しています。他のシナリオが現れ、データベースシステムと構文の間に事態がより複雑または異なる可能性がある場合のCIのプラクティス

ご協力いただきありがとうございます。ありがとう。

答えて

1

はい保護されています。シンプルさを越えてCodeIgniter QueryBuilder documentation

からは、クエリビルダ機能を使用する主な利点は、クエリ構文は、各データベースアダプタによって生成されているので、それは、データベースに依存しないアプリケーションを作成することを可能にすることです。また、値はシステムによって自動的にエスケープされるため、より安全な照会も可能です。

関連する問題