ペネトレ

XSSとは(Cross-Site Scripting)

💥 XSSとは?

XSS(Cross-Site Scripting)

Webページに悪意あるJavaScriptを埋め込まれてしまう脆弱性


💡 かんたんに言うと

掲示板などで、本来はこう表示したい:

こんにちは!

でも攻撃者が:

<script>alert('hacked')</script>

のようなコードを投稿すると…

👉 それを見たユーザーのブラウザで スクリプトが実行される


🔥 何が危険?

攻撃者は:

  • Cookieの盗み取り
  • セッションハイジャック
  • 偽フォーム表示
  • パスワード入力の窃取
  • 勝手な操作実行

などが可能になります。


🧠 なぜ起きる?

サーバー側が:

<div>
  {{ user_input }}
</div>

のように 入力値をそのまま出力 しているのが原因。

HTMLエスケープしていない。


🧨 XSSの種類

① Stored XSS(保存型)

悪意あるスクリプトがDBに保存される
→ 他のユーザー全員に影響

例:掲示板、プロフィール欄


② Reflected XSS(反射型)

URLパラメータに仕込む
→ 被害者がリンクを踏むと発動

例:

https://example.com/search?q=<script>...</script>

③ DOM-based XSS

JavaScriptの処理ミスで発生
サーバーではなくフロントエンド側の問題


🛡 対策

  1. 出力時エスケープ(最重要)
  2. CSP(Content Security Policy)
  3. HttpOnly Cookie
  4. 危険なinnerHTML使用禁止
  5. 入力バリデーション

🎯 一言まとめ

XSS = 「他人のブラウザで勝手にJavaScriptを実行させる攻撃」


🆚 これまでとの違い

脆弱性攻撃対象
IDORサーバーデータ
File Inclusionサーバーファイル
SSRF内部ネットワーク
XSSユーザーのブラウザ

-ペネトレ
-