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

分野:セキュリティ|実際に出題されたIPA過去問題

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

  1.  SQL文の組立ては全てプレースホルダで実装する。
  2.  シェルを起動できる言語機能を利用した実装を避ける。
  3.  直接メモリにアクセスできる言語機能を利用した実装を避ける。
  4.  利用者が入力したファイル名にディレクトリが含まれていないかのエラーチェックを実装する。
解答・解説を見る

正解:イ

AI解説

OSコマンドインジェクションは、外部からの入力を使ってOSのシェルコマンドを実行させる攻撃である。根本的な対策は、system()やexec()のようなシェルを起動できる言語機能の利用そのものを避け、シェルを経由しない安全なAPI(直接プログラムを呼び出す関数など)を使用することである。 ア: 誤り。SQL文の組立てを全てプレースホルダで実装するのはSQLインジェクション対策であり、OSコマンドインジェクション対策とは異なる。 イ: 正しい。シェルを起動できる言語機能(system関数など)の利用を避けることが、OSコマンドインジェクションの根本的な対策となる。 ウ: 誤り。直接メモリにアクセスできる言語機能の利用を避けるのは、バッファオーバーフローなどメモリ関連の脆弱性対策であり、OSコマンドインジェクション対策とは異なる。 エ: 誤り。ファイル名にディレクトリが含まれていないかチェックするのは、ディレクトリトラバーサル対策であり、OSコマンドインジェクション対策そのものではない。 💡 脆弱性対策は「攻撃手法と対策技術を1対1で覚える」より、「危険な言語機能そのものを使わない」という設計方針(セキュアコーディングの基本原則)とセットで理解すると応用が利く。

出典:令和7年度 春期 応用情報技術者試験 午前 問42 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「セキュリティ」分野の攻略ポイント

情報セキュリティは応用情報・高度共通午前Iを通じて最も出題数が多い分野です。暗号方式・認証・攻撃手法・マルウェア・アクセス制御・脆弱性管理・セキュリティ規格・ネットワークセキュリティまで範囲が広く、暗記だけでは選択肢を絞り切れません。「その仕組みが何を守るのか(機密性・完全性・可用性のどれか)」を軸に整理すると正答率が安定します。

セキュリティの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(セキュリティ)の過去問