Categories: PHPWordPress開発

PHP 値の受け渡しで気をつけること。

$_GET、$_POST、$_COOKIE の値の受け取りは、セキュリティ上気をつけないといけないですが、 毎回コードを書くのも面倒なので。

class common{
   public static function getGET($name){
        $ret = filter_input(INPUT_GET, $name);
        if (isset($ret)){
            $ret =str_replace("
class common{
   public static function getGET($name){
        $ret = filter_input(INPUT_GET, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
        return '';
    }

    public static function getPost($name){
        $ret = filter_input(INPUT_POST, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
         return '';
    }

    public static function getCookie($name){
        $ret = filter_input(INPUT_COOKIE, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
         return '';
    }
}
", "", $ret);//Nullバイト攻撃対策 return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8'); } return ''; } public static function getPost($name){ $ret = filter_input(INPUT_POST, $name); if (isset($ret)){ $ret =str_replace("
class common{
   public static function getGET($name){
        $ret = filter_input(INPUT_GET, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
        return '';
    }

    public static function getPost($name){
        $ret = filter_input(INPUT_POST, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
         return '';
    }

    public static function getCookie($name){
        $ret = filter_input(INPUT_COOKIE, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
         return '';
    }
}
", "", $ret);//Nullバイト攻撃対策 return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8'); } return ''; } public static function getCookie($name){ $ret = filter_input(INPUT_COOKIE, $name); if (isset($ret)){ $ret =str_replace("
class common{
   public static function getGET($name){
        $ret = filter_input(INPUT_GET, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
        return '';
    }

    public static function getPost($name){
        $ret = filter_input(INPUT_POST, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
         return '';
    }

    public static function getCookie($name){
        $ret = filter_input(INPUT_COOKIE, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
         return '';
    }
}
", "", $ret);//Nullバイト攻撃対策 return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8'); } return ''; } }

で、呼び出すときは、

$data = common::getGet('data');

のようにして使える。   参考:PHP – $_GET, $_POSTなどを受け取る際の処理 参考:PHP開発エンジニア必読!最低限必要なセキュリティ対策

nakaike