OS コマンドインジェクション対策
出典: 令和7年度 春期 応用情報技術者試験 午前 問42 (IPA)
Web アプリケーションソフトウェアの開発における OS コマンドインジェクション対策はどれか。
- ア SQL 文の組立ては全てプレースホルダで実装する。
- イ シェルを起動できる言語機能を利用した実装を避ける。
- ウ 直接メモリにアクセスできる言語機能を利用した実装を避ける。
- エ 利用者が入力したファイル名にディレクトリが含まれていないかのエラーチェックを実装する。
正解と解説を見る
正解: イ
- ア: これは SQL インジェクションの対策です。
- イ: シェルを起動できる言語機能を避ければ、OS コマンドを実行させられなくなります。正しい答えです。
- ウ: 直接メモリにアクセスできる機能を避けるのは、バッファオーバーフローなどへの対策です。
- エ: ファイル名にディレクトリが含まれていないかを調べるのは、ディレクトリトラバーサルの対策です。
ポイント
- OS コマンドインジェクションは、入力値に細工をして、Web アプリケーションから OS のコマンド (シェル) を不正に実行させる 攻撃です。
- 対策は、シェルを起動できる関数や機能を使わない こと (OS の機能が必要なら、言語が持つライブラリを使う) です。
- SQL 文の組立てにプレースホルダを使うのは SQL インジェクション対策、ファイル名のチェックはディレクトリトラバーサル対策です。