高度情報処理技術者試験・情報処理安全確保支援士試験 令和7年度 春期 午前I 問14
Webアプリケーションソフトウェアの開発におけるOSコマンドインジェクション対策はどれか。
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】イ
OSコマンドインジェクションは、利用者の入力をOSコマンドの一部として組み立てて実行するプログラムに、コマンド区切り文字などを含む不正な値を与え、開発者が想定していないコマンドを実行させる攻撃です。system関数など、シェルを起動して文字列をコマンドとして解釈する言語機能を使用しなければ、攻撃用の入力がOSコマンドとして実行される経路を断つことができます。したがって、イが正解です。
アのプレースホルダは誤りです。SQL文の値をプレースホルダで受け渡す方法は、入力値をSQLの構文として解釈させないためのSQLインジェクション対策です。OSコマンドインジェクションへの直接的な対策ではありません。
ウの直接メモリにアクセスできる機能を避ける方法は誤りです。これは、領域外アクセスや不正なポインタ操作などによるバッファオーバーフローを防ぐ観点の対策です。
エのファイル名にディレクトリが含まれていないか確認する方法は誤りです。これは「../」などによって公開範囲外のファイルへアクセスされるディレクトリトラバーサルへの対策です。
【ポイント】 OSコマンドインジェクションでは、利用者の入力とシェルで実行するコマンド文字列との連結が危険です。 外部コマンドを使わず、同等の処理を行うライブラリやAPIを直接利用する設計を優先します。 やむを得ず外部コマンドを使う場合は、引数を固定し、入力値を許可リストで厳格に検証します。
出典:令和7年度 春期 高度情報処理技術者試験・情報処理安全確保支援士試験 午前I 問14
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の30問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる