平成26年度 春期 応用情報技術者試験 午前 問40
テクノロジ/セキュリティ安全なWebアプリケーションの作り方について,攻撃と対策の適切な組合せはどれか。 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成26年度 春期 応用情報技術者試験 午前 問40
- ア攻撃:SQLインジェクション 対策:SQL文の組立てに静的プレースホルダを使用する。
- イ攻撃:クロスサイトスクリプティング 対策:任意の外部サイトのスタイルシートを取り込めるようにする。
- ウ攻撃:クロスサイトリクエストフォージェリ 対策:リクエストにGETメソッドを使用する。
- エ攻撃:セッションハイジャック 対策:利用者ごとに固定のセッションIDを使用する。
正解:ア
解説
SQLインジェクション対策としては,SQL文の組立てにバインド機構である静的プレースホルダを使用し,入力値をSQL文の構造から分離することが有効である。他の選択肢は,いずれも脆弱性を悪化させる誤った対策になっている。
選択肢ごとの解説
- ア正しい。SQL文の組立てに静的プレースホルダ(バインド機構)を使用することで,入力値がSQL文として解釈されるSQLインジェクションを防止できる。
- イ誤り。任意の外部サイトのスタイルシートを取り込めるようにすると,むしろクロスサイトスクリプティングなどの攻撃を受けやすくなる。
- ウ誤り。リクエストにGETメソッドを使用することは,クロスサイトリクエストフォージェリ対策にはならず,むしろ攻撃者にリクエストを偽造されやすくする。
- エ誤り。利用者ごとに固定のセッションIDを使い続けると,セッションIDが漏えいした場合に継続してなりすまされるため,セッションハイジャック対策としては不適切である。