|
0004. 一括して入力パラメータのサニタイジングを行う方法
|
| << 0003. セキュリティを考慮して、特定の関数を使用不可能にする方法 |
セキュリティを考慮すると htmlspecialchars() や strip_tags() などを用いて、入力値のサニタイジングを行うことと思いますが、面倒なので下記のように再帰処理を用いて一括してサニタイジングを行い、以後はそちらで各種処理を行うような癖をつけると後が楽です。
ただし、文字長チェックなどでサニタイズ前の変数を使いたくなることもあるので、オリジナルの元の値も残しておき、適時使い分けましょう。
<?php // $_POSTの中身を配列構造を維持したまま
// 一括して htmlspecisalchars() でエスケープする例
function sanitize($a) {
$_a = array();
foreach($a as $key=>$value) {
if (is_array($value)) {
$_a[$key] = sanitize($value);
} else {
$_a[$key] = htmlspecialchars($value);
}
}
return $_a;
}
echo "オリジナルの \$_POST : <br>\n";
var_dump($_POST);
echo "<hr>\n";
echo "サニタイズ後の \$_POST : <br>\n";
$_sanitized_POST = sanitize($_POST);
var_dump($_sanitized_POST);
?>
|
| >> 0005. MIME-typeを定義する方法 |