×
サイバー攻撃について

まとめ

XSSは、「悪意あるscriptタグを入力される脆弱性」ではありません。

本質は、次の一点にあります。

信頼できないデータが、ブラウザーの実行能力を持つコンテキストへ到達すること。

初期のXSSは、主にサーバーが生成するHTMLの問題として扱われていました。

その後、DOM-based XSS、mXSS、Script Gadget、DOM Clobbering、Prototype Pollution、WebViewなど、ブラウザー内部やプラットフォーム階層まで攻撃面が広がりました。

ただし、古いXSSが新しいXSSへ置き換わったわけではありません。

現在は、古典的な反射型・格納型に、クライアント側とプラットフォーム側の攻撃経路が積み重なっています。

実務では、次の順序で対策します。

  1. 自動エスケープを維持する

  2. コンテキストに合わせて出力エンコードする

  3. innerHTMLなどの危険なSinkを減らす

  4. HTMLが必要な場合だけ専用サニタイザーを使う

  5. API、WebSocket、Storageの値も信頼しない

  6. 管理画面やログ画面もテキスト表示する

  7. CSPを防御の追加層として導入する

  8. Trusted Typesで危険なSinkを制御する

  9. アップロードファイルを別オリジンで配信する

  10. CI、コードレビュー、自動テストで再発を防ぐ