平成24年度春期 応用情報技術者試験 午前 問43
Webアプリケーションにおける脅威とそのセキュリティ対策の適切な組合せはどれか。
- ア OSコマンドインジェクションを防ぐために,Webアプリケーションが発行するセッションIDを推測困難なものにする。
- イ SQLインジェクションを防ぐために,Webアプリケーション内でデータベースへの問合せを作成する際にバインド機構を使用する。
- ウ クロスサイトスクリプティングを防ぐために,外部から渡す入力データをWebサーバ内のファイル名として直接指定しない。
- エ セッションハイジャックを防ぐために,Webアプリケーションからシェルを起動できないようにする。
解答・解説を見る
正解:イ
AI解説
SQLインジェクションは,入力データにSQL文の断片を混入させてデータベースを不正操作する攻撃である。対策のバインド機構(プレースホルダ)は,SQL文の雛形をあらかじめ用意し,入力値を後から「単なる値」として埋め込む仕組みであり,入力がSQL文として解釈されないため根本的な対策となる。脅威と対策が正しく対応しているのはイだけである。 ア: セッションIDを推測困難にするのはセッションハイジャック対策であり,OSコマンドインジェクション対策ではない。 イ: 正しい。バインド機構はSQLインジェクションの有効な対策である。 ウ: 外部からの入力データをファイル名に直接使わないのはディレクトリトラバーサル対策であり,クロスサイトスクリプティング対策(エスケープ処理)ではない。 エ: シェルを起動できないようにするのはOSコマンドインジェクション対策であり,セッションハイジャック対策ではない。 💡 この形式は「対策自体は実在するが,対応する脅威がずれている」のがひっかけ。攻撃と対策のペア(SQLインジェクション=バインド機構,XSS=エスケープ,セッションハイジャック=ID推測困難化,OSコマンドインジェクション=シェル起動制限,トラバーサル=ファイル名直接指定禁止)を正しく結び付けて覚える。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。