[PHP-users 12971] Re: HMTML Tag の回避策 (Re: PHP-users 保存書庫の文字化け)
Osamu Shigematsu
php-users@php.gr.jp
Tue, 04 Feb 2003 14:38:42 +0900
重松です。
小山さんには釈迦に説法ではありますが。;)
> '<' や '>' は、HTML エンティティを用いて '<', '>' に置き換える
> べきでしょう。そのために PHP には htmlspecialchars() 関数が用意されて
> います。
それ以外にも、JavaScript を紛れ込ませることもできますね。
方法によっては、htmlspecialchars() で防ぐことはできないと思います。
また、最近話題に上りましたが、\0 を送りつける攻撃法もありますし、
この場合、標準のままだと、\0 はどうも置き換えの対象ではないようです。
(PHP 4.3.0-CGI on Solaris 2.6)
echo '<?= htmlspecialchars("<>\0&\n"); ?>' | php -q | od -tx1
0000000 26 6c 74 3b 26 67 74 3b 00 26 61 6d 70 3b 0a
0000017
もちろん、SQL サーバにデータを格納する場合には、
SQL 文を混入されないように細心の注意を払う必要があります。
なので、htmlspecialchars() をかましたから、もう安心というように、
安直に考えない方がいいと思われます。>元の質問の方
--
Osamu Shigematsu <m5issige@mr.hitachi-medical.co.jp>