AI活用の教科書
セキュリティ開発テストむずかしい3分で読了

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

Cross-Site Scriptingくろすさいとすくりぷてぃんぐ

ひとことで言うと

悪意あるスクリプトをWebページに紛れ込ませ、見た人のブラウザで動かして情報を盗む攻撃です。

📖 もうちょい詳しく

何が新しいの?

クロスサイトスクリプティングは、よく「XSS」と短く呼ばれる攻撃の手口です。Webページのなかに、攻撃者が用意した小さなプログラム(スクリプト)をこっそり紛れ込ませます。そして、そのページを見にきた人のブラウザ(ChromeやSafariなどの閲覧ソフト)の上で、そのプログラムを勝手に動かしてしまいます。

どうやって動いてるの?

きっかけは、利用者が入力した文字を、サイトがそのままページに表示してしまうことです。ふつうの文字なら問題ありません。けれど「これは命令ですよ」という印(タグ)付きの文字を入力できてしまうと、ブラウザはそれを表示する文字ではなく実行する命令と勘違いします。結果として、攻撃者の書いたスクリプトが他の人のブラウザで走ってしまうのです。

何ができるの?

攻撃者側から見ると、ログイン状態を保つための合言葉(クッキー)を盗んだり、なりすましてログインしたりできてしまいます。入力欄をニセモノに差し替えて、パスワードを入力させることもあります。利用者は、いつものサイトを見ているつもりなので気づきにくいのが厄介な点です。

🌱 身近なたとえ

掲示板の貼り紙で例えると分かりやすいかもしれません。誰でも紙を貼れる掲示板に、「ここを押すと管理人室につながります」と書いたニセの貼り紙を混ぜておくようなものです。掲示板(サイト)が貼り紙の中身をなにも確認せず、そのまま壁に貼ってしまうと、後から来た人はそれを本物だと思って従ってしまいます。XSSも、サイトが入力をうのみにして表示してしまうところから起きます。

✅ まず覚えるポイント

  • Webページに悪いスクリプトを紛れ込ませる攻撃です
  • 被害を受けるのは、サイトを見にきた利用者のブラウザです
  • 入力された文字をそのまま表示してしまうサイトで起こりやすいです
  • クッキー(ログイン用の合言葉)を盗まれることがあります
  • 文字を「ただの文字」として扱う処理(エスケープ)で防げることが多いです
  • 利用者は気づきにくいので、作る側の対策がとても大切です

🧭 よくある勘違い

サイトのデータが壊される攻撃なの?

XSSの主な狙いは、サーバー側のデータを壊すことではなく、ページを見にきた利用者のブラウザを操ることです。データベースそのものを直接ねらう攻撃は、別の手口(SQLインジェクションなど)になります。XSSは「利用者側で何かをさせる」点が特徴です。

自分のパソコンが感染するの?

ウイルスのようにパソコン本体に住みつくものとは、しくみが違います。XSSは、開いているそのページのなかでスクリプトが動くのが基本です。ただし盗まれた情報を使って、なりすましなどの被害が広がる場合があります。

URLを踏まなければ大丈夫?

リンクをクリックさせて発動するタイプもありますが、それだけではありません。攻撃用の文字がサイトに保存され、ふつうに閲覧した人みんなに影響が出るタイプもあります。「あやしいリンクを踏まない」だけでは防ぎきれないことがあります。

🧩 関連して覚えると楽な言葉

  • SQLインジェクション: データベースをねらう、入力悪用の攻撃です
  • クッキー: ログイン状態を保つためにブラウザが持つ小さな合言葉です
  • CSRF: ログイン中の利用者に、意図しない操作をさせる別の攻撃です
  • 脆弱性: 攻撃の入り口になるソフトの弱点のこと。XSSもその一つです

🏁 ひとことでまとめ

XSSは、ページに紛れ込んだスクリプトが見た人のブラウザで動いてしまう弱点で、入力をそのまま信じないことが防御の第一歩です。