[PHP-users 12970] HMTML Tag の回避策 (Re: PHP-users 保存書庫の文字化け)

KOYAMA Tetsuji php-users@php.gr.jp
Tue, 04 Feb 2003 14:24:33 +0900


  小山です。

At Tue, 04 Feb 2003 11:19:57 +0900,
こうちゃ@フリーメール wrote:
> PHPに限らないと思いますが・・・
> 例えば、(何も対応されてない)掲示板の内容に「</table>」などを
> 書込まれると、「画面総崩れ」になってしまいますよね?
> 
> これって、思いつく解決法として、
>  1.勝手に全角変換する
>  2.そのままを出力するタグ「<pre>でしたっけ?」を使用する
>    (ただし、「</pre>タグを書込まれると対応出来ない^^;
> ってな、事をするしか無いんですよね?

  どのような Web アプリケーションであるかにかかわらず、外部からの入力
をそのまま画面に表示するのは、クロスサイトスクリプティング問題を引き起
こす可能性が高いのでやってはいけないことです。

  '<' や '>' は、HTML エンティティを用いて '&lt;', '&gt;' に置き換える
べきでしょう。そのために PHP には htmlspecialchars() 関数が用意されて
います。

-- 
	小山 哲志@ビート・クラフト
	koyama@beatcraft.com
	koyama@hoge.org