[PHP-users 13008] Re: HMTML Tag の回避策 (自己レス)

Yasuo Ohgaki php-users@php.gr.jp
Wed, 05 Feb 2003 02:24:27 +0900


大垣です。

NAKAMURA Takeshi wrote:
> From: Hideo NAKAMITSU <nomo@bluecoara.net>
> Date: Tue, 4 Feb 2003 15:48:08 +0900
> Subject: [PHP-users 12986] Re: HMTML Tag の回避策 (自己レス)
> 
> 
>>JavaScriptとは何も<script></script>内にあるとは限らないので
>><b onClick="window.open('http://danger/')">fff</b>
>>などでも発生します.
> 
> 
>  こういうことを防ぐための php の関数って無いんでしょうか。
> 
>  strip_tags で、通す tag を指定することができるのですが
> tag について 許可する属性 …例えば font だったら scale は通すが
> それ以外のcolor 等は通さないとか… 掲示板などを作ろうとすると
> 作る必要があると思うのです。
>  そしてそう言う物を作る度、あっちこっちで車輪の再生産が
> 行われているのでは無いかと想像するのですが 実は、既に
> あったりしますか?

attributeでJavaScriptが実行できる事は良く知られていますが、
どのブラウザのどのバージョンがどのattributeでJavaSriptが
実行できるか、と言う事を調べるのが面倒なのでだれも作っていない
と思います。仮に作っても、新しいブラウザでは別の大穴が開いている、
と言う事も考えられるので、ユーザーからの入力にどうしてもタグを含
めたい場合は全てのattributeを無しにするか、TEXTととして情報を
取得するのでなく、ドロップダウンリストから選択させるなどの工夫が
必要です。

テキストで取得して、チェックする方法も可能ですが、作成とメンテナ
ンスはかなり面倒だと思います。

# しかし、null byteの処置は頭が痛いですね...

--
Yasuo Ohgaki