HTMLタグのサニタイズ
クロスサイトスクリプティングなど悪意のあるタグを入力された場合を想定して、HTMLの>は>に、<は<等に変換するサニタイズ処理が必要になります。また、逆に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);
?>
コマンドラインから実行するものと想定しています。