IPA過去問ドリル

平成24年度 秋期 応用情報技術者試験 午前 問41

テクノロジ/セキュリティ

安全なWebアプリケーションの作り方について,攻撃と対策の適切な組合せはどれか。 ア SQLインジェクション 対策:SQL文の組立てに静的プレースホルダを使用する。 イ クロスサイトスクリプティング 対策:任意の外部サイトのスタイルシートを取り込めるようにする。 ウ クロスサイトリクエストフォージェリ 対策:リクエストにGETメソッドを使用する。 エ セッションハイジャック 対策:利用者ごとに固定のセッションIDを使用する。 (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成24年度 秋期 応用情報技術者試験 午前 問41

正解:ア

解説

SQLインジェクション対策としては,SQL文を動的に組み立てるのではなく,プレースホルダ(バインド機構)を使ってSQL文の構造と入力値を分離することが有効です。他の選択肢は,本来意図される安全な対策とは逆に,脆弱性を助長する記述になっています。

選択肢ごとの解説

  • 正しい。SQL文の組立てに静的プレースホルダを使用することは,SQLインジェクション対策として有効です。
  • 誤り。任意の外部サイトのスタイルシートを取り込めるようにすると,悪意あるスタイルシートやスクリプトの混入を許し,クロスサイトスクリプティングの対策にはなりません。
  • 誤り。GETメソッドの使用はクロスサイトリクエストフォージェリの対策にはならず,むしろURLにパラメータが残るなど別の問題を招きます。対策としてはトークンの埋め込みなどが必要です。
  • 誤り。利用者ごとに固定のセッションIDを使い続けると,セッションIDが漏えいした場合になりすましが可能になり,セッションハイジャックの対策にはなりません。対策としてはログイン時などにセッションIDを再生成することが有効です。
応用情報技術者の過去問を演習モードで解く