IPA過去問ドリル

令和7年度 春期 応用情報技術者試験 午前 問42

テクノロジ/セキュリティ

Web アプリケーションソフトウェアの開発における OS コマンドインジェクション対策はどれか。

出典:令和7年度 春期 応用情報技術者試験 午前 問42

正解:イ

解説

OS コマンドインジェクションは,外部からの入力値がシェルに渡されて OS コマンドとして解釈されることで発生します。したがって最も確実な対策は,シェルを起動する言語機能(system 関数やバッククォート,eval など)を使わずに実装することです。やむを得ず使う場合は,シェルを介さない API の利用や入力値のエスケープが必要になります。

選択肢ごとの解説

  • 誤り。SQL 文の組立てを全てプレースホルダで実装するのは,SQL インジェクションへの対策です。
  • 正しい。シェルを起動できる言語機能を利用した実装を避けることが,OS コマンドインジェクションの根本的な対策です。
  • 誤り。直接メモリにアクセスできる言語機能を避けるのは,バッファオーバフローなどメモリ破壊に起因する脆弱性への対策です。
  • 誤り。入力されたファイル名にディレクトリが含まれていないかを検査するのは,ディレクトリトラバーサル(パス名パラメタの未チェック)への対策です。
応用情報技術者の過去問を演習モードで解く