2011-01-28 5 views
0

CodeIgniterからURIセグメントを取得し、Oracleデータベースにクエリで使用しています。これらのセグメントを保護する方法は何ですか?私はPHPのOracleエスケープメソッド(PHPのMySQLエスケープメソッドはmysql_real_escape_string()です)が見つかりません。Oracle DBですべての文字を許可するときにCodeIgniter URIセグメントを保護する方法

さらに、CodeIgniterのセキュリティは、設定ファイルであなたに伝えようとしている限り、非常に危険です。私はあなたが使用しているデータベースシステムでこれらのURIセグメントを適切にエスケープする限り、安全だと思っていますが、私が正しいかどうかわかりません。

ありがとうございました。

+0

私は最後のCIで一目を取ったので、それはしばらくしているが、それはORMは自動的に値をエスケープだされていませんを使用することをお勧めしますか?いずれにせよ、まだ古いバディの追撃があります。それは良いことではなく、絶対に守ることはしないでください。 – kos

+0

まだエスケープメソッドがあります。まあ、私は確信していませんが、おそらくオフサイトの一部のドキュメントを読むべきだと思います。 – kos

+3

SQLインジェクションについての恐れなしに、特にOracleで作業するときに値をバインドできます。クエリーはプリペアドステートメントの場合は –

答えて

-1

私はCIのクエリバインディング

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; 

$this->db->query($sql, array($yourSegment1, $yourSegment2, $yourSegment3)); 
+0

これは、Oracleでの希望通りには機能しません。このコードでは、 '' OR 1 = 1 --'のような文字列のバインドを許可し、実際には望ましくないクエリに単純に追加します。 Oracleバインド変数は、 'oci8_driver.php'やその他のDBドライバファイルを一部変更することなく、CIでネイティブに動作するようには見えません – Simon

関連する問題