web-dev-qa-db-ja.com

PostgreSQLのtsqueryでSQLインジェクションを行う方法は?

私がテストしているアプリケーションにSQLインジェクションの脆弱性があると思います。これは、不正なパラメータを検索フォームに入力したときに見られます。すべての例外は次の形式で表示されます。

PHP raised unknown error: pg_query() [http://php.net/function.pg-query]: Query failed: ERROR: syntax error in tsquery: "query" (more details about error - in log file)

したがって、PostreSQLの tsquery 関数が使用されているようです。次のような状況を調べた後:

The Fat & Rats:C

-> ERROR: syntax error in tsquery: "the & fat & & & rats:c"

plainto_tsquery は、クエリをtsqueryの形式に変換するために使用されると思います。

この脆弱性はどの程度悪用される可能性がありますか?追加のサニタイズなしでこれらのPostgreSQL関数を使用することは安全ですか?

9
Andrei Botalov

見て ここ これは、見ているものとかなりよく似ていますが、これはSQLインジェクションではなく、tsqueryで使用されるクエリ言語へのインジェクションです。同様の[クローズド]質問にあった可能性のある例からも、標準のSQLインジェクションの問題であるとは思えない奇妙さがありました。

だからといって、それが何らかの方法で悪用可能ではないことは言うまでもありませんが、標準のSQLインジェクションテクニックが有用な結果を生み出す可能性は低いと言えます。

4
Rory McCune