格納型 XSS
格納型 XSS とは何ですか?
格納型 XSS攻撃者が送り込んだスクリプトがサーバ側に保存され、ページを閲覧したすべてのユーザのブラウザで実行される永続型クロスサイトスクリプティング。
格納型 XSS(永続型 XSS、Type-2 XSS とも呼ばれる)は、アプリケーションが信頼できない入力を受け取り、データベース、ファイルシステム、ログなどに保存し、その後に適切な出力エンコードを行わず HTML としてレンダリングした場合に発生します。ペイロードはサーバ側に存在するため、該当ページを閲覧するすべての利用者の環境で自動的にスクリプトが実行され、被害範囲が極めて広くなります。コメント欄、ユーザプロフィール、レビュー、ログを表示する管理画面などが典型的な攻撃対象です。対策としては、文脈に応じた出力エンコード、厳格な Content Security Policy、入力検証、DOMPurify などのサニタイズライブラリの利用が重要です。
● 例
- 01
ブログコメントに <script>fetch('/api/me').then(...)</script> を投稿し、閲覧者全員で実行される。
- 02
プロフィール名にペイロードを保存し、ユーザ一覧を表示する管理画面で発火する。
● よくある質問
格納型 XSS とは何ですか?
攻撃者が送り込んだスクリプトがサーバ側に保存され、ページを閲覧したすべてのユーザのブラウザで実行される永続型クロスサイトスクリプティング。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
格納型 XSS とはどういう意味ですか?
攻撃者が送り込んだスクリプトがサーバ側に保存され、ページを閲覧したすべてのユーザのブラウザで実行される永続型クロスサイトスクリプティング。
格納型 XSS はどのように機能しますか?
格納型 XSS(永続型 XSS、Type-2 XSS とも呼ばれる)は、アプリケーションが信頼できない入力を受け取り、データベース、ファイルシステム、ログなどに保存し、その後に適切な出力エンコードを行わず HTML としてレンダリングした場合に発生します。ペイロードはサーバ側に存在するため、該当ページを閲覧するすべての利用者の環境で自動的にスクリプトが実行され、被害範囲が極めて広くなります。コメント欄、ユーザプロフィール、レビュー、ログを表示する管理画面などが典型的な攻撃対象です。対策としては、文脈に応じた出力エンコード、厳格な Content Security Policy、入力検証、DOMPurify などのサニタイズライブラリの利用が重要です。
格納型 XSS からどのように防御しますか?
格納型 XSS に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
格納型 XSS の別名は何ですか?
一般的な別名: 持続型 XSS, Type-2 XSS。
● 関連用語
- attacks№ 240
クロスサイトスクリプティング(XSS)
他のユーザーが閲覧するページに悪意あるスクリプトを注入し、当該サイトのオリジンとして被害者のブラウザで実行させる Web 脆弱性。
- attacks№ 912
反射型 XSS
攻撃者が制御するリクエストパラメータが即時にレスポンスへ反映され、被害者のブラウザで実行される非永続型 XSS。
- attacks№ 347
DOM ベース XSS
クライアントサイドの JavaScript が信頼できないデータをサニタイズせずに DOM シンクへ書き込むことで、注入と実行がすべてブラウザ内で完結する XSS。
- appsec№ 214
コンテンツセキュリティポリシー (CSP)
スクリプト・スタイル・フレームなどの読み込み元をブラウザに指示する HTTP レスポンスヘッダで、XSS やデータ注入攻撃の影響を抑える。
- appsec№ 773
出力エンコーディング
信頼できないデータを HTML・JavaScript・URL・SQL・シェルなど特定の出力コンテキストで安全な形式に変換し、コードとして実行されるのを防ぐ処理。
- appsec№ 538
入力検証
アプリケーションが処理する前に、信頼できないすべての入力が期待する型・長さ・範囲・形式・値集合に合致しているかをサーバー側で確認する処理。
● 関連項目
- № 104ブラインド XSS