Changeset 22913


Ignore:
Timestamp:
2013/06/28 15:11:49 (7 years ago)
Author:
shutta
Message:

#2277 (エラーチェックのチェック処理の見直し)
r22891,r22904(脆弱性対応)を2_13-devにもコミット。
SC_CheckError.phpの分を間違っていたので再適用。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13-dev/data/class/SC_CheckError.php

    r22912 r22913  
    114114            return; 
    115115        } 
    116         $this->createParam($value); 
     116        // $this->createParam($value); 
    117117        if (strlen($this->arrParam[$value[0]]) == 0) { 
    118118            $this->arrErr[$value[0]] = '※ ' . $value[0] . 'が入力されていません。<br />'; 
     
    198198            return; 
    199199        } 
    200         $this->createParam($value); 
     200        // $this->createParam($value); 
    201201        // 文字数の取得 
    202202        if ($this->arrParam[$value[2]] !== $this->arrParam[$value[3]]) { 
     
    217217            return; 
    218218        } 
    219         $this->createParam($value); 
     219        // $this->createParam($value); 
    220220        // 文字数の取得 
    221221        if ($this->arrParam[$value[2]] == $this->arrParam[$value[3]]) { 
     
    236236            return; 
    237237        } 
    238         $this->createParam($value); 
     238        // $this->createParam($value); 
    239239        // 文字数の取得 
    240240        if ($this->arrParam[$value[2]] != '' && $this->arrParam[$value[3]] != '' && ($this->arrParam[$value[2]] > $this->arrParam[$value[3]])) { 
     
    979979            return; 
    980980        } 
    981         $this->createParam($value); 
     981        // $this->createParam($value); 
    982982        if ((strlen($this->arrParam[$value[2]]) > 0 || strlen($this->arrParam[$value[3]]) > 0 || strlen($this->arrParam[$value[4]]) > 0) && ! checkdate($this->arrParam[$value[3]], $this->arrParam[$value[4]], $this->arrParam[$value[2]])) { 
    983983            $this->arrErr[$value[2]] = '※ ' . $value[0] . 'を正しく指定してください。<br />'; 
     
    10281028            return; 
    10291029        } 
    1030         $this->createParam($value); 
     1030        // $this->createParam($value); 
    10311031        if ((strlen($this->arrParam[$value[2]]) > 0 || strlen($this->arrParam[$value[3]]) > 0 || strlen($this->arrParam[$value[4]]) > 0 || strlen($this->arrParam[$value[5]]) > 0) && ! checkdate($this->arrParam[$value[3]], $this->arrParam[$value[4]], $this->arrParam[$value[2]])) { 
    10321032            $this->arrErr[$value[2]] = '※ ' . $value[0] . 'を正しく指定してください。<br />'; 
     
    10701070            return; 
    10711071        } 
    1072         $this->createParam($value); 
     1072        // $this->createParam($value); 
    10731073        if ((strlen($this->arrParam[$value[2]]) > 0 || strlen($this->arrParam[$value[3]]) > 0) && ! checkdate($this->arrParam[$value[3]], 1, $this->arrParam[$value[2]])) { 
    10741074            $this->arrErr[$value[2]] = '※ ' . $value[0] . 'を正しく指定してください。<br />'; 
     
    11871187            return; 
    11881188        } 
    1189         $this->createParam($value); 
     1189        // $this->createParam($value); 
    11901190        if ($this->evalCheck($value[1]) === false) { 
    11911191            $this->arrErr[$value[0]] = '※ ' . $value[0] . ' の形式が不正です。<br />'; 
     
    12181218    function createParam($value) 
    12191219    { 
    1220         foreach ($value as $key) { 
    1221             if (is_string($key) || is_int($key)) { 
    1222                 if (!isset($this->arrParam[$key]))  $this->arrParam[$key] = ''; 
    1223             } 
    1224         } 
     1220         foreach ($value as $val_key => $key) { 
     1221             if ($val_key != 0 && (is_string($key) || is_int($key))) { 
     1222                 if (!is_numeric($key) && preg_match('/^[a-z0-9_]+$/i', $key)) { 
     1223                     if (!isset($this->arrParam[$key])) $this->arrParam[$key] = ''; 
     1224                     if (strlen($this->arrParam[$key]) > 0 
     1225                           && (preg_match('/^[[:alnum:]\-\_]*[\.\/\\\\]*\.\.(\/|\\\\)/',$this->arrParam[$key]) || !preg_match('/\A[^\x00-\x08\x0b\x0c\x0e-\x1f\x7f]+\z/u', $this->arrParam[$key]))) { 
     1226                         $this->arrErr[$value[1]] = '※ ' . $value[0] . 'に禁止された記号の並びまたは制御文字が入っています。<br />'; 
     1227                     } 
     1228                 } else if (preg_match('/[^a-z0-9_]/i', $key)) { 
     1229                     trigger_error('', E_USER_ERROR); 
     1230                 } 
     1231             } 
     1232         } 
    12251233    } 
    12261234 
Note: See TracChangeset for help on using the changeset viewer.