XSS(クロスサイトスクリプティング)には主に反射型(Reflective XSS)と蓄積型(Stored XSS)の2種類があります
XSS(クロスサイトスクリプティング)には主に反射型(Reflective XSS)と蓄積型(Stored XSS)の2種類があります。これらの違いについて簡単に説明します。
1. 反射型XSS(Reflective XSS)
反射型XSSは、攻撃コードがユーザーから送信されたリクエストに応じてサーバーが動的に生成するレスポンスに組み込まれるタイプの攻撃です。リクエストに含まれる悪意のあるスクリプトが、サーバーでそのままレスポンスとして反映され、ユーザーのブラウザで実行されます。
- 仕組み: 攻撃者は悪意のあるリンクを作成し、ユーザーにクリックさせます。リンクには攻撃スクリプトが含まれており、そのスクリプトがリクエストに含まれてサーバーに送信されます。サーバーがリクエストをそのまま反映してレスポンスを返す場合、スクリプトがユーザーのブラウザで実行されます。
- 例: ユーザーが攻撃者の用意したURLをクリックすることでスクリプトが実行される。
http://example.com/search?query=<script>alert('XSS')</script>
サーバーがquery
パラメータをそのままページに表示すると、スクリプトが実行される。
- 特徴: 攻撃は通常、一時的であり、特定のリクエストを通じて発生する。攻撃者はユーザーに悪意のあるリンクを踏ませる必要がある。
2. 蓄積型XSS(Stored XSS)
蓄積型XSSは、攻撃者が悪意のあるスクリプトをサーバーに送信し、それがデータベースなどに保存され、後で他のユーザーがそのデータを閲覧する際にスクリプトが実行されるタイプの攻撃です。
- 仕組み: 攻撃者は悪意のあるスクリプトを投稿フォームやコメント欄に入力し、それがサーバーに保存されます。別のユーザーがそのページにアクセスした際、保存されたスクリプトがユーザーのブラウザで実行されます。
- 例: Webサイトのコメント欄に攻撃スクリプトを投稿し、他のユーザーがページを閲覧したときにスクリプトが実行される。
<script>alert('Stored XSS')</script>
これがデータベースに保存され、表示時にユーザーのブラウザで実行されます。
- 特徴: 攻撃コードがサーバー側に保存されているため、一度攻撃が成功すると継続的に他のユーザーが影響を受ける可能性がある。
違いのまとめ
- 反射型XSSは、ユーザーのリクエストに応じてスクリプトが即座に実行され、一時的です。
- 蓄積型XSSは、攻撃コードがサーバーに保存され、複数のユーザーに対して継続的に影響を及ぼします。
どちらのタイプも適切な入力バリデーションやエスケープ処理によって防ぐことができます。
投稿者プロフィール
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
- 新人エンジニア研修講師2024年12月20日バイト言葉とは何か? 新人エンジニア向けに解説
- 新人エンジニア研修講師2024年12月20日ワークフローシステムとは何か? 新人エンジニア向けに解説
- 新人エンジニア研修講師2024年12月17日新人エンジニア研修で教えたい「正しい生成AIの使い方」 新人研修講師の方に向けて解説
- 新人エンジニア研修講師2024年12月17日新人エンジニア向けの「ビジネス文書の書き方」について、新人研修講師の方に向けて解説