本文へ移動

くろすさいとすくりぷてぃんぐ

クロスサイトスクリプティング

XSS = Cross-Site Scripting

Webサイトの脆弱性を悪用し、閲覧者のブラウザ上で悪意のあるスクリプトを実行させる攻撃です。

詳しい説明

1. 定義

クロスサイトスクリプティングとは、Webサイトの脆弱性を利用して、悪意のあるスクリプトを埋め込み、閲覧者のブラウザ上で不正な動作を実行させる攻撃です。Webサイトそのものを攻撃するのではなく、閲覧者の情報を盗むことが主な目的です。

2. 仕組みと種類

脆弱性があるWebサイトにスクリプトを注入すると、閲覧者のセッションIDを盗み出してなりすましを行ったり、偽のログイン画面を表示してパスワードを盗んだりします。利用者が信頼しているWebサイトを経由するため、被害に気づきにくいのが特徴です。

攻撃者は、Webページにスクリプトを埋め込み、それを閲覧したユーザーのブラウザで実行させます。これにより、本来そのWebサイトが持つ権限やCookie情報にアクセスできるため、非常に危険な攻撃となります。多くのWebアプリで対策が必須です。

3. 試験ごとの視点

ITパスポート試験から基本情報技術者試験まで、Webセキュリティの必須知識として何度も問われます。スクリプトがどこで実行されるか(閲覧者のブラウザ側)という点と、それに対してどのような対策(エスケープ処理など)が有効かを整理しておくことが試験対策として不可欠です。

4. 紛らわしい語との違い

SQLインジェクションはデータベースを攻撃して情報を盗みますが、クロスサイトスクリプティングはユーザーのブラウザを攻撃して情報を盗みます。攻撃の対象と目的が異なる点を押さえる必要があります。

5. 身近な例

掲示板の投稿欄に悪意のあるスクリプトが書き込まれているとします。その掲示板を見ただけで、閲覧者のクッキーが盗まれたり、外部サイトへ飛ばされたりする被害が発生します。ユーザーは何も特別なことをしていないのに被害に遭うのが特徴です。

試験で問われること

ITパスポート試験

  • 攻撃対象はWebサイト閲覧者のブラウザである。
  • 攻撃目的はセッションハイジャックや個人情報の窃取である。
  • Webサイト側が信頼できると思って実行したスクリプトが悪用される。

基本情報技術者試験

  • 反射型や蓄積型などの種類があるWeb攻撃である。
  • 出力データの無害化(エスケープ処理)が主な対策である。
  • Cookieの属性指定(HttpOnlyなど)も重要である。