« リンク集のサイドバーへの追加 | メイン | PHPお役立ちリンク »

HTMLタグのサニタイズ

クロスサイトスクリプティングなど悪意のあるタグを入力された場合を想定して、HTMLの>は&gt;に、<は&lt;等に変換するサニタイズ処理が必要になります。また、逆にHTMLやXMLをコードとしてWebに乗せたい場合にも事前のサニタイズ処理が必要となる場合があります。PHPではhtmlspecialcharsを利用できます。

ファイルの一括変換のサンプルコードを示します。

<?php
// ファイルの内容をサニタイズします。
// php htmlconv.php 入力ファイル 出力ファイル
// 入力ファイルのオープン
@$lines = file ($argv[1]) or die("Input file open failed!");
// 出力ファイルのオープン
 @$ohandle = fopen($argv[2],"w") or die("Output file open failed!");
// 配列をループしてHTMLをサニタイズします。
foreach ($lines as $line_num => $line) {
    fwrite($ohandle, htmlspecialchars($line));
}
fclose($ohandle);
?>

コマンドラインから実行するものと想定しています。

トラックバック

このエントリーのトラックバックURL:
http://www.yumemaro.com/apps/mt-tb.cgi/14

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)