クロスサイトスクリプティングの種類
現在、主な型のクロスサイトスクリプティングとして、以下の3種類が存在する。ただし、将来別の型が見つかる可能性もあるから、ウェブページの脆弱性のこうした悪用法がこれら3種類に限られるとは考えないでほしい。
反射型
最も一般的な種類のクロスサイトスクリプティング攻撃は、おそらく反射型攻撃である。これは、クライアントシステムのブラウザに送り返される結果を生成するため、クライアントが送信したデータをサーバですぐに処理するようなウェブサイトで生まれる脆弱性を標的にする。ブラウザに送り返されるウェブページの結果に含められるコードをサーバに送信することができ、生成された結果の送信時に、HTMLの特殊文字エンコードを使ってコードがエンコードされなければ、攻撃が成功する。この場合、結果に含めて送り返されたコードは、動作を起こさない目に見えるテキストとして表示されるのではなく、ブラウザによって解釈されてしまう。
この攻撃の最もよくある使い方では、不正な形式のURLを使用するリンクが関係する。ページでの表示用に、URLに含めて渡される変数に、悪意のあるコードを含める、といった使い方だ。サーバ側のコードで、ページ上にリンクを生成するために使用される別のURLや、ユーザーの名前を表示してあいさつできるようにテキストページに含められるユーザーの名前のように簡単なものが、クロスサイトスクリプティングの反射型攻撃で使われる脆弱性になる可能性がある。
格納型
HTMLインジェクション攻撃としても知られる、格納型のクロスサイトスクリプティング攻撃では、後で他のユーザーに提供するページの作成に使用するため、サーバに送信された何らかのデータが(通常はデータベースに)格納される。この型のクロスサイトスクリプティング攻撃では、格納されたクロスサイトスクリプティングの脆弱性がウェブサイトに存在すると、そのサイトを訪問するすべてのユーザーが影響を受ける可能性がある。この種類の脆弱性がある代表的な例は、ユーザーがHTMLやXHTMLを直接記述して自分の投稿に書式を設定することが許されている、フォーラムや掲示板などのコンテンツ管理ソフトウェアだ。