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

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

解答・解説

正解: イ. シェルを起動できる言語機能を利用した実装を避ける。

正解の根拠

OSコマンドインジェクションとは、ユーザーからの入力データをシェルなどのOSコマンドに渡す際に、攻撃者が悪意のあるコマンドを紛れ込ませて実行させる攻撃手法です。
この攻撃を防ぐための根本的な対策は、シェルを起動できる言語機能を利用した実装を避けることです。

各選択肢の解説

  • ア: SQL文の組立ては全てプレースホルダで実装する。
    これはデータベースを不正操作する SQLインジェクション に対する対策です。
  • イ: シェルを起動できる言語機能を利用した実装を避ける。
    これが正解です。OSコマンドインジェクション を防ぐための根本的な対策となります。
  • ウ: 直接メモリにアクセスできる言語機能を利用した実装を避ける。
    これはメモリ領域を溢れさせて不正なコードを実行させる バッファオーバフロー などの脆弱性に対する対策です。
  • エ: 利用者が入力したファイル名にディレクトリが含まれていないかのエラーチェックを実装する。
    これは公開を意図していないファイルに不正にアクセスする ディレクトリトラバーサル に対する対策です。

Spineチーム