0

簡単に言えば、ユーザーがいくつかの値を取得するためにクエリである必要があるテーブルとフィールドを複数のドロップダウン リストから選択できる管理セクションがあります。したがって、ZEND でのクエリは、文字列を連結することによって実行されます。

$query = "SELECT $fieldName1, $fieldName2 from $tableName where $fieldName1 = $value";

SQLインジェクションを回避するためにZENDアプローチを使用して上記をエスケープするにはどうすればよいですか? それらをすべて追加してみましたか?quoteinto を呼び出しますが、一部の変数 (テーブル名やフィールド名など) では機能しないようです。

4

3 に答える 3

2

ZF はquoteIdentifier()、この目的のために特に次の機能を備えています。

$query = "SELECT ".$db->quoteIdentifier($fieldName1).","...

あなたの場合、有効な列名のホワイトリストと照合することもできます。

于 2013-04-02T09:18:31.300 に答える