AP過去問 令和7年度春期 午前 問42
AP過去問 令和7年度春期 午前 問41前の問題へ
AP過去問 令和7年度春期 午前 問43次の問題へ
問42(問題文)
Webアプリケーションソフトウェアの開発における OS コマンドインジェクション対策はどれか。
ア SQL文の組立ては全てプレースホルダで実装する。
イ シェルを起動できる言語機能を利用した実装を避ける。
ウ 直接メモリにアクセスできる言語機能を利用した実装を避ける。
エ 利用者が入力したファイル名にディレクトリが含まれていないかのエラーチェックを実装する。
回答・解説
アは❌間違いです。SQL文の組立ては全てプレースホルダで実装する。
- →この選択肢は、SQLインジェクション対策に関するものです。SQLインジェクションは、SQL文に悪意のあるコードを埋め込む攻撃ですが、本問のテーマであるOSコマンドインジェクションとは異なる種類の攻撃です。したがって、誤りです。
イは✅正しいです。シェルを起動できる言語機能を利用した実装を避ける。
- →この選択肢が正解です。OSコマンドインジェクションは、Webアプリケーションが利用者からの入力を用いてOSのコマンドを実行する際に、不適切な処理によって悪意のあるコマンドが実行される脆弱性です。シェルを呼び出すような関数(system、execなど)の使用を避けることが対策の基本の一つとなります。
ウは❌間違いです。直接メモリにアクセスできる言語機能を利用した実装を避ける。
- →この選択肢は、バッファオーバーフローなどの脆弱性に関する対策です。確かに危険性はありますが、OSコマンドインジェクションとは異なる攻撃への対処を示しています。したがって、誤りです。
エは❌間違いです。利用者が入力したファイル名にディレクトリが含まれていないかのエラーチェックを実装する。
- →この選択肢は、パストラバーサル(Path Traversal)攻撃の対策として有効です。ファイルアクセスに関する制御ですが、これもOSコマンドインジェクション対策とは異なります。したがって、誤りです。
したがって
イ
が答えです。
AP過去問 令和7年度春期 午前 問41前の問題へ
AP過去問 令和7年度春期 午前 問43次の問題へ