[PHP-users 13892] Null Byte Attack 対策

Osamu Shigematsu php-users@php.gr.jp
Wed, 12 Mar 2003 14:03:32 +0900


こんにちは。重松です。

表題の Null Byte (NUL) Attack 対策ですが、PukiWiki のコードを眺めていて
面白いアプローチを発見したので、投稿します。

それは、$_GET だとかを、sanitize 用関数に食わせてしてしまう方法です。

規模が大きなものですでに開発済みの場合、かなり効果的な対策の
アイデアだと思います。
# いささか後ろ向きという感もありますが。

<?php
function sanitize_null_character($param)
{
        if (is_array($param)) {
                $result = array();
                foreach($param as $key => $value) {
                        $key = sanitize_null_character($key);
                        $result[$key] = sanitize_null_character($value);
                }
        } else {
                $result = str_replace("\0", '', $param);
        }
        return $result;
}

-- 
Osamu Shigematsu <m5issige@mr.hitachi-medical.co.jp>