« 2005年02月18日 | メイン | 2005年06月18日 »
2005年02月27日
変数からタグを削除
たとえば、不特定多数の人が書き込む掲示板などで、タグの使用を禁止したい時がある。
これを簡単に行えるのが
string strip_tags ( string str [, string allowable_tags])
第二引数には、許可するタグを指定できる。
たとえば、 b と i 以外の全てのタグを削除したい場合。
$data = strip_tags($data,'<b><i>');
としたいが、実はこれだけだととても危険である。
タグ属性までは審査しないので、悪意のある人がタグにスクリプトを埋め込み、攻撃を可能とする。
なので、この関数で許可するタグがある場合、正規表現を使った置換等で危険な属性を排除しなければならない。
意外とこの関数の世話になることが多いはず。
ユーザーが入力した文字をページに出力する場合、必ず、タグを使われた場合のことを考えよう。