応用情報技術者 2012年 秋期 午前2 問41
問題文
安全な Webアプリケーションの作り方について、攻撃と対策の適切な組合せはどれか。

選択肢
ア:(正解)
イ:
ウ:
エ:
安全な Webアプリケーションの作り方について、攻撃と対策の適切な組合せはどれか【午前2 解説】
要点まとめ
- 結論:SQLインジェクション対策には静的プレースホルダの使用が有効であり、これが正しい組合せです。
- 根拠:静的プレースホルダはSQL文とデータを分離し、不正なSQLコードの挿入を防ぎます。
- 差がつくポイント:攻撃の特徴を正確に理解し、対策技術の具体的な効果を把握することが重要です。
正解の理由
アの「SQLインジェクション――SQL文の組立てに静的プレースホルダを使用する」は正解です。
SQLインジェクションは、ユーザ入力を直接SQL文に組み込むことで不正なSQLを実行させる攻撃です。
静的プレースホルダ(プリペアドステートメント)はSQL文の構造を固定し、ユーザ入力をパラメータとして扱うため、攻撃を防止できます。
SQLインジェクションは、ユーザ入力を直接SQL文に組み込むことで不正なSQLを実行させる攻撃です。
静的プレースホルダ(プリペアドステートメント)はSQL文の構造を固定し、ユーザ入力をパラメータとして扱うため、攻撃を防止できます。
よくある誤解
クロスサイトスクリプティング(XSS)対策で外部スタイルシートを自由に取り込むことは逆効果です。
セッションハイジャック対策で固定のセッションIDを使うのはセキュリティリスクを高めます。
セッションハイジャック対策で固定のセッションIDを使うのはセキュリティリスクを高めます。
解法ステップ
- 各攻撃の特徴を理解する(SQLインジェクション、XSS、CSRF、セッションハイジャック)。
- それぞれの攻撃に対する基本的な対策方法を確認する。
- 選択肢の対策が攻撃の防止に適切かを検証する。
- 不適切な対策を除外し、正しい組合せを選ぶ。
選択肢別の誤答解説
- イ:クロスサイトスクリプティング対策に任意の外部サイトのスタイルシートを取り込むのは、攻撃を助長するため誤りです。
- ウ:クロスサイトリクエストフォージェリ対策にGETメソッドを使用するのは不適切で、むしろPOSTメソッドやトークンの利用が推奨されます。
- エ:セッションハイジャック対策で固定のセッションIDを使うと、セッション乗っ取りのリスクが高まるため誤りです。
補足コラム
SQLインジェクションはWebアプリケーションの代表的な脆弱性の一つで、OWASP Top 10にも常にランクインしています。
プリペアドステートメントは多くのデータベースAPIでサポートされており、セキュリティだけでなくパフォーマンス向上にも寄与します。
プリペアドステートメントは多くのデータベースAPIでサポートされており、セキュリティだけでなくパフォーマンス向上にも寄与します。
FAQ
Q: 静的プレースホルダと動的プレースホルダの違いは何ですか?
A: 静的プレースホルダはSQL文の構造を固定し、パラメータを後から安全に埋め込む方式です。動的はSQL文を文字列結合で組み立てるため危険です。
A: 静的プレースホルダはSQL文の構造を固定し、パラメータを後から安全に埋め込む方式です。動的はSQL文を文字列結合で組み立てるため危険です。
Q: クロスサイトリクエストフォージェリの有効な対策は?
A: リクエストにCSRFトークンを付与し、POSTメソッドを使用することが一般的な対策です。
A: リクエストにCSRFトークンを付与し、POSTメソッドを使用することが一般的な対策です。
関連キーワード: SQLインジェクション、静的プレースホルダ、クロスサイトスクリプティング、クロスサイトリクエストフォージェリ、セッションハイジャック、Webセキュリティ、プリペアドステートメント

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

