
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
クロスサイトリクエストフォージェリ(CSRF)への対策として最も適切なものを選ぶ問題。推測困難なランダム値(トークン)をhiddenフィールドに埋め込み、フォームデータ処理時に確認する対策が該当する。
Webアプリケーションに対する各種攻撃と、それぞれに対する対策を対応づける問題。
① 攻撃と対策の対応: CSRF=推測困難なトークンを埋め込み確認、XSS=特殊文字のエスケープ、SQLインジェクション=プレースホルダ、セッション固定=ログイン時にセッションIDを新しくする
② トークンをhiddenに埋め込んで確認するのが③
③ ③
CSRFは、ユーザがログイン中であることを悪用して、罠のリンクなどから、利用者の意図しないリクエストを、Webアプリケーションに送らせる攻撃である。対策は、リクエストが、正規のフォームから送られたことを確認することで、推測困難なランダム値(トークン)をhiddenフィールドに埋め込み、処理時にその値が含まれているかを確認する(CSRFトークン)。したがって③が最も適切である。
CSRF対策は、トークンの埋込みと確認、リクエスト元の確認(Refererなど)、重要処理での再認証など。XSS=エスケープ、SQLi=プレースホルダ、セッション固定=ログイン時のセッションID再発行。
キーワード: CSRF、クロスサイトリクエストフォージェリ、トークン、hiddenフィールド、XSS、SQLインジェクション、セッション固定、情報工学部門