令和3年度 III-30

科目: 専門科目 / 分野: 情報工学部門 / 年度: 令和3年度

III-30 問題画像

出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」

クロスサイトリクエストフォージェリ(CSRF)への対策として最も適切なものを選ぶ問題。推測困難なランダム値(トークン)をhiddenフィールドに埋め込み、フォームデータ処理時に確認する対策が該当する。

解説

この問題で問われていること

Webアプリケーションに対する各種攻撃と、それぞれに対する対策を対応づける問題。

解き方

① 攻撃と対策の対応: CSRF=推測困難なトークンを埋め込み確認、XSS=特殊文字のエスケープ、SQLインジェクション=プレースホルダ、セッション固定=ログイン時にセッションIDを新しくする
② トークンをhiddenに埋め込んで確認するのが③
③ ③

正解が正しい理由

CSRFは、ユーザがログイン中であることを悪用して、罠のリンクなどから、利用者の意図しないリクエストを、Webアプリケーションに送らせる攻撃である。対策は、リクエストが、正規のフォームから送られたことを確認することで、推測困難なランダム値(トークン)をhiddenフィールドに埋め込み、処理時にその値が含まれているかを確認する(CSRFトークン)。したがって③が最も適切である。

各選択肢について

覚えるべきポイント

CSRF対策は、トークンの埋込みと確認、リクエスト元の確認(Refererなど)、重要処理での再認証など。XSS=エスケープ、SQLi=プレースホルダ、セッション固定=ログイン時のセッションID再発行。

キーワード: CSRF、クロスサイトリクエストフォージェリ、トークン、hiddenフィールド、XSS、SQLインジェクション、セッション固定、情報工学部門