応用情報技術者試験 令和7年春 午前問42 解説付き過去問
問題
Webアプリケーションソフトウェアの開発におけるOSコマンドインジェクション対策はどれか。
正解
解説
この問題は、WebアプリケーションのセキュリティにおいてOSコマンドインジェクション攻撃を防ぐための対策について問うものです。
- OSコマンドインジェクションの定義
OSコマンドインジェクションは、不正なコマンドをWebアプリケーションを介してOSに実行させる攻撃です。攻撃者は、入力フィールドなどを通じてOSコマンドを注入し、システムに影響を与えることが可能です。 - シェルを起動できる言語機能のリスク
シェルを起動できる言語機能を用いると、外部からの入力がそのままコマンドとして実行される可能性があります。このような機能を使わず、より安全な方法で外部プロセスを扱うことが重要です。例えば、言語に組み込みの安全な関数を使用する、または外部ライブラリを利用することが挙げられます。 - 他の選択肢の誤り
「SQL文の組立ては全てプレースホルダで実装する」はSQLインジェクション対策です。「直接メモリにアクセスできる言語機能を利用した実装を避ける」はバッファオーバーフロー攻撃の対策であり、「利用者が入力したファイル名にディレクトリが含まれていないかのエラーチェックを実装する」はディレクトリトラバーサル攻撃の対策です。
したがって、「シェルを起動できる言語機能を利用した実装を避ける」が正解であり、これはOSコマンドインジェクションのリスクを軽減する効果的な対策です。