PHPにて$_POST等のNULLバイト対策をしたいのですが、
function sanitize ($arr)
{
if (is_array($arr))
{
return array_map('sanitize', $arr);
}
if (preg_match('/\0/', $arr))
{
die('不正な入力です');
}
return str_replace('\0', '', $arr);
}
本に載っていた上記の関数にて
$_POST = sanitize($_POST);
としても、例えば$_POST['name']に
hogetarou\0<script>とかhogetaarou\x00<script>とか送っても、普通にそのままブラウザに出ます。
チェックされずに(die()されずに)通ってしまうのですが、これではダメなのでしょうか?
それともそもそも自分の指定方法がNULLバイト攻撃のようになっていないのでしょうか?
改善方法、または皆さんのNULLバイト対策法を教えていただきたいのですが。