IPA過去問ドリル

平成28年度 秋期 システムアーキテクト試験 午前Ⅱ 問24

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

安全な Web アプリケーションの作り方について,攻撃と対策の適切な組合せはどれか。

出典:平成28年度 秋期 システムアーキテクト試験 午前Ⅱ 問24

正解:ア

解説

SQL インジェクション攻撃は,Web アプリケーションが利用者からの入力値を SQL 文の一部としてそのまま組み込んでしまうことによって,データベースへの不正な操作を可能にしてしまう攻撃です。対策として,SQL 文の雛型(プレースホルダ)をあらかじめコンパイル時などに静的に確定させておき,入力値をデータとしてのみバインドする「静的プレースホルダ」を使用することで,入力値が SQL 文の構造そのものに影響を与えないようにできます。

選択肢ごとの解説

  • 正しい。SQL インジェクション対策として,SQL 文の組立てに静的プレースホルダを使用することは,入力値が SQL 文の構造に影響しないようにする適切な対策です。
  • 誤り。クロスサイトスクリプティング対策としては,外部サイトのスタイルシートや任意のスクリプトの取り込みを制限すべきであり,任意の外部サイトのスタイルシートを取り込めるようにすることは,むしろ攻撃を許してしまう不適切な対応です。
  • 誤り。クロスサイトリクエストフォージェリ対策としては,正規の画面から発行されたリクエストであることを確認するトークンなどの仕組みが必要であり,単にリクエストに GET メソッドを使用することは対策にならず,むしろ攻撃者による URL 経由の不正リクエストを容易にしてしまいます。
  • 誤り。セッションハイジャック対策としては,セッション ID をログインのたびに変更し推測されにくいものにすべきであり,利用者ごとに固定のセッション ID を使用することは,セッション ID の漏えい・盗用によるなりすましを容易にしてしまう不適切な対応です。
システムアーキテクトの過去問を演習モードで解く