平成26年度 高度共通 午前I(PM試験) 問13
安全なWebアプリケーションの作り方について,攻撃と対策の適切な組合せはどれか。

- ア SQLインジェクション:SQL文の組立てに静的プレースホルダを使用する。
- イ クロスサイトスクリプティング:任意の外部サイトのスタイルシートを取り込めるようにする。
- ウ クロスサイトリクエストフォージェリ:リクエストにGETメソッドを使用する。
- エ セッションハイジャック:利用者ごとに固定のセッションIDを使用する。
解答・解説を見る
正解:ア
AI解説
正解はア。SQLインジェクション対策の基本は、SQL文の雛形を先に確定させ、利用者入力を後から値として埋め込む静的プレースホルダ(プリペアドステートメント)の使用である。入力値がSQLの構文として解釈されないため、攻撃文字列を無害化できる。 ア: 正解。静的プレースホルダを使えば入力値は常にデータとして扱われ、SQL文の構造を改変できなくなる。 イ: 任意の外部サイトのスタイルシート取込みを許すことはむしろ脆弱性を広げる行為であり、XSS対策は出力時のエスケープ処理などである。 ウ: CSRF対策は秘密のトークン確認やPOSTメソッド+再認証などであり、GETメソッドの使用はURLに情報が残るなど逆に危険性を高める。 エ: 固定のセッションIDはセッションハイジャックを容易にする。対策はログイン成功時にセッションIDを新規に発行し、推測困難な値にすることである。 💡 誤答肢はいずれも「対策のふりをした危険な実装」である。攻撃名と正しい対策(SQLi=プレースホルダ、XSS=エスケープ、CSRF=トークン、ハイジャック=ID再発行)の対応表を暗記しておく。
出典:平成26年度 秋期 プロジェクトマネージャ試験 午前I 問13 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。