フォームのデータを受け取りエスケープして変数に入れる
http://phpnet.blog91.fc2.com/blog-entry-6.html
に書いてある
//POSTデータを全て受け取りエスケープして変数に入れる
foreach($_POST as $k => $v) {
if(get_magic_quotes_gpc()) {
$v=stripslashes($v);
}
$v=htmlspecialchars($v);
$array[$k]=$v;
}
extract($array);
っていう処理はやってはダメ
理由は、
extract($_POST)は危険だから、エスケープしたとしてもやってはダメ
PHP Manual - extract
http://www.php.net/manual/ja/function.extract.php
PHP Manualにも書いてある。
似たような処理をする場合は
POSTされてきたデータを全て展開するのではなく、
展開対象とするキーをあらかじめ決めておかないといけない。
参考
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13121103418