日々プログラミング言語の勉強をしている京四郎のブログ -7ページ目

日々プログラミング言語の勉強をしている京四郎のブログ

日々プログラムの勉強をしている人がプログラム関係の記事を書くブログ

フォームのデータを受け取りエスケープして変数に入れる

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