- 締切済み
Pro*C 静的SQLでもSQLインジェクション対策は必要ですか?
Oracle Pro*Cで静的SQLを利用している場合であっても、 SQLインジェクション対策は必要でしょうか? また対策が必要な場合、どう対処すれば良いのでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
回答No.2
確証はありませんが、プリペアドクエリとして動作する為、 SQLインジェクション対策は必要ないように感じます。 動作して確認する環境が言えないので定かではありませんが・・・。 一度単純なファイルを作ってみて、どういう風に動くか 確認してみてはいかがでしょう?
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
回答No.1
Oracle Pro*Cは利用した事がないので何とも分かりませんが、 静的、つまり生成するSQL文は全てリテラル文字列で、外部からの干渉を受ける立場にないのに、 どうやってSQL文に文字を注入するのでしょうか?
質問者
お礼
すみません、静的SQLという表現はよくなかったですね。 例えば以下のような埋め込みSQLで、ホスト変数(in_pass)に どのような値が設定されても、1つの値として扱われるという 確証を得たいのです。 EXEC SQL SELECT user, pass INTO :str_user, :str_pass FROM foo WHERE pass = :in_pass; in_pass ← "' OR 'A'='A" でも大丈夫?
お礼
はい、実際に試してみたところ、問題はなさそう (1つの値として扱われてそう)なのですが。 Pro*C(埋め込みSQL)に関する情報が少なく、 いまいちはっきりしないのです。