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

Masaru Matsunami php-users@php.gr.jp
Wed, 03 Jul 2002 02:02:43 +0900


今晩は、松並です。

Tue, 02 Jul 2002 08:26:29 +0900 頃に
Yasuo Ohgaki <yohgaki@ohgaki.net> さん wrote:

> > HTML文脈に応じて適切なエスケープをしてくれるHTMLテンプレートクラス
> > ってのがあればなぁ、作りたいなぁ、でもHTMLをパースするって大変だよねぇ
> > などと、1年前くらいから思ってはいます。思うだけですが。
> 
> スピードが一番の問題と思います。
> 
> Cで実装してもかなり遅くなりそうな気がしますが、URL Rewriterを
> 拡張してうまく使えば、そこそこのパフォーマンスで動作するかもしれ
> ません。

あと、JSPみたいにパースした結果をキャッシュするとかできますね。
パフォーマンスが悪いのはテンプレートを入れ替えた初回だけに
とどめることができます。ちょっと複雑ですが。
※だれか作ってくれたらいいなぁ。なんて他力本願:)


> # HTML関連規格が複雑化している今、どこに危ないバグ
> # 含まれても不思議ではないと思いますが、、
> # サイトがどこまでのリスクを受け入れるか、という事
> # 考慮して決めれば良いと思います。

まったくそのとおりだと思います。トレードオフですよね。
セキュリティを重視し過ぎてつまらないサイトになるのは本末転倒ですし。


実はお詫びがあります。
ご紹介させていただきました
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02.html
のリスト3にミスがありました。

暫定の正誤表
 誤:14 return '' if($url =~ m|[^;/?:@&=+$,A-Za-z0-9\-_.!~*'()%]|);
 正:14 return '' if($url =~ m|[^;/?:@&=+\$,A-Za-z0-9\-_.!~*'()%]|);
正式な修正は確認後、上記サイトへ反映されることになっています。

ご指摘くださいました方、大変ありがとうございました。
他にも間違いがありましたら、ご指摘のほどよろしくお願いします。

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