応用情報技術者試験 令和7年度 春期 午前 問42
Webアプリケーションソフトウェアの開発におけるOSコマンドインジェクション対策はどれか。
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】イ
OSコマンドインジェクションは、利用者が入力した文字列をOSのコマンド文字列に組み込み、シェルに実行させることで、攻撃者が意図した別のコマンドまで実行できる脆弱性です。したがって、シェルを起動できる言語機能を利用した実装そのものを避けることが有効です。OS機能の利用が必要な場合でも、シェルを介さずに固定したプログラムを呼び出し、引数を文字列として明確に分離することが基本となります。
アの説明は誤りです。SQL文をプレースホルダで組み立てる方法は、入力値をSQLの構文として解釈させないSQLインジェクション対策です。OSコマンドの実行は防止しません。
ウの説明は誤りです。直接メモリへアクセスする機能を避けることは、バッファオーバフローなどのメモリ破壊に起因する脆弱性の抑制に関係します。OSコマンドインジェクションへの直接の対策ではありません。
エの説明は誤りです。ファイル名にディレクトリ名や「..」などが含まれていないかを検査する方法は、意図しない場所のファイルへアクセスされるディレクトリトラバーサルへの対策です。
【ポイント】 OSコマンドインジェクション対策の基本は、外部入力を含むコマンドをシェルに渡さないことです。 SQLにはプレースホルダ、HTML出力にはエスケープ処理など、入力値が解釈される場所に応じて対策を選びます。 入力チェックだけに頼らず、危険な機能を使用しない設計を優先します。
出典:令和7年度 春期 応用情報技術者試験 午前 問42
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の80問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる