この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ア

解説

Webアプリケーションのセキュリティ対策では、攻撃手法と有効な対策を正しく対応付けることが重要です。SQLインジェクション攻撃は、ユーザー入力をSQLクエリに直接組み込む際に悪意あるSQL文を注入し、データベースを不正操作する攻撃です。最も根本的な対策は「静的プレースホルダ(prepared statement)を使用してSQL文を組み立てる」ことです。静的プレースホルダは変数部分をプレースホルダ(?など)で定義し、後からバインドする方式で、入力値がSQLの構文として解釈されないため、SQLインジェクションが原理的に発生しません。IPA「安全なウェブサイトの作り方」でも最優先推奨対策とされています。

なぜ他の選択肢は違うのか

選択肢 イ
「クロスサイトスクリプティング(XSS)の対策として、任意の外部サイトのスタイルシートを取り込めるようにする」は誤りです。外部スタイルシートの無制限取り込みはCSP(Content Security Policy)違反であり、XSSを悪化させる原因になります。XSSの正しい対策は「出力時のHTMLエスケープ」「Content-Security-Policy ヘッダの設定」「HttpOnly属性」などです。
選択肢 ウ
「クロスサイトリクエストフォージェリ(CSRF)の対策として、リクエストにGETメソッドを使用する」は誤りです。GETメソッドへの変更はCSRF対策になりません。GETリクエストも攻撃者が罠サイトから発行できます。CSRF対策の正解は「CSRFトークンの使用」「SameSite Cookie属性」「Refererヘッダの検証」などです。
選択肢 エ
「セッションハイジャックの対策として、利用者ごとに固定のセッションIDを使用する」は誤りです。固定セッションIDはセッション固定攻撃(Session Fixation Attack)の脆弱性を作ります。セッションハイジャック対策は「ログイン後にセッションIDを新しく発行し直す」「予測困難なランダムなセッションIDの生成」「Secure+HttpOnly属性」などです。

解くときのポイント

攻撃と対策の対応関係:SQLインジェクション→プレースホルダ(静的/動的)、XSS→出力時エスケープ+CSP、CSRF→CSRFトークン+SameSite、セッションハイジャック→ログイン後ID再生成。設問では「誤った対策」を組み合わせた選択肢が罠。bはXSSを悪化、cはCSRF未対策、dはセッション固定脆弱性。