正解は エ
クロスサイトリクエストフォージェリ(CSRF)攻撃は、利用者がログイン済みのWebサイトに対して、攻撃者が用意した罠(悪意のあるリンクやページ)を通じて、利用者の意図しないリクエスト(送金や設定変更など)を、利用者本人になりすまして送信させる攻撃です。本問は、CSRF攻撃の対策として「効果がないもの」を選ぶ問題です。有効な対策としては、重要操作の都度パスワードを再入力させる(ア)、推測困難なトークンをリクエストに含めてサーバ側で照合する(イ)、Refererヘッダを確認して正しいリンク元からの遷移であることを確かめる(ウ)などがあります。これらはいずれも、リクエストが利用者の正当な意図によるものかを確認する仕組みです。選択肢dの「リクエストに含まれる特殊文字をタグとして認識されない文字列に置き換える」は、サニタイジング(エスケープ処理)であり、これはクロスサイトスクリプティング(XSS)への対策です。XSSとCSRFは別の攻撃であり、サニタイジングはCSRFの防止には効果がありません。したがって、CSRF対策として効果がない選択肢dが正解です。XSS対策(サニタイジング)とCSRF対策(トークン・再認証・Referer確認)を混同しないことが重要です。
CSRF対策=再認証・CSRFトークン・Referer確認など(リクエストが本人の意図か確認)。サニタイジング(特殊文字のエスケープ)はXSS対策でCSRFには効果なし。XSSとCSRFの対策を混同しないこと。