[PHP-users 8349] Re: 簡易クロスサイトスクリプティング対策スクリプト

Masaru Matsunami php-users@php.gr.jp
Sat, 29 Jun 2002 16:28:06 +0900


松並と申します。

Sat, 29 Jun 2002 14:26:40 +0900 頃に
Yasuo Ohgaki <yohgaki@ohgaki.net> さん wrote:

> 最後に、根本的なクロスサイトスクリプティング対策はコード本体の脆弱性
> を修正する必要があります。このスクリプトを使っているから安全と言う事
> はありません。残っている危険性はstoryid 33にコメントしますが、コード
> を読まないとなんとも言えません、、
> 
> 手っ取り早く書いたスクリプトなので抜けがあるかも知れません。ご指摘、
> よろしくお願いします。

大垣さん作成のスクリプトはPHPへの入力部分に着目して
入力値チェックするものですよね。
効果は大きいといえますが、もちろん完璧ではありません。

大垣さんも言及されていますが、結局はHTMLページを作り出すPHPコードを
修正する必要があります。

本質的には「HTMLページを生成するプログラム」部分で、
外部から与えられる文字列を「そのまま出力」してしまうことが問題です。

よく < や > といった文字を検出したり、エスケープすればオーケーと
聞きますが、HTML中の文脈によっては、クロスサイトスクリプティング脆弱性
につながることがあります。
わたしがまとめた情報がこちらにあります。
「クロスサイトスクリプティング」
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02.html

※ウソなど書いていましたらご指摘頂ければと思います。

※個人的には機能優先で拡張しすぎたHTML/JavaScriptなどに
 クロスサイトスクリプティング問題の原因があると恨んでます。

-- 
Masaru Matsunami <mat@abelia.ocn.ne.jp>