关于ThinkPHP2.0版本的修改
thinkphp吧
全部回复
仅看楼主
level 2
逸海雲天 楼主
【Model.class.php】
修改原因:原来的存在逻辑漏洞,验证不成功
     // 自动表单令牌验证
     public function autoCheckToken($data) {
         $name    = C('TOKEN_NAME');
         if(isset($_SESSION[$name])) {
             if(empty($data[$name]) || $_SESSION[$name] != $data[$name]) {
                 return false;
             }else{
                 unset($_SESSION[$name]);
                 return true;
             }
         }else{
             return false;
         }
     }
【HtmlCache.class.php】
修改原因:默认读取配置文件时候,全部是小写,而取得当前模块却是大写,造成缓存不成功
// 判断是否需要静态缓存
     static private function requireHtmlCache() {
         // 分析当前的静态规则
          $htmls = C('_htmls_'); // 读取静态规则
          if(!empty($htmls)) {
             // 静态规则文件定义格式 actionName=>array(‘静态规则’,’缓存时间’,’附加规则')
             // 'read'=>array('{id},{name}',60,'md5') 必须保证静态规则的唯一性 和 可判断性
             // 检测静态规则
             if(isset($htmls[strtolower(MODULE_NAME).':'.strtolower(ACTION_NAME)])) {
                 $html    =    $htmls[strtolower(MODULE_NAME).':'.strtolower(ACTION_NAME)];    // 某个模块的操作的静态规则
             }elseif(isset($htmls[strtolower(MODULE_NAME).':'])){// 某个模块的静态规则
                 $html    =    $htmls[strtolower(MODULE_NAME).':'];
             }elseif(isset($htmls[strtolower(ACTION_NAME)])){
                 $html    =    $htmls[strtolower(ACTION_NAME)]; // 所有操作的静态规则
             }elseif(isset($htmls['*'])){
                 $html    =    $htmls['*']; // 全局静态规则
             }elseif(isset($htmls['Empty:index']) && !class_exists(MODULE_NAME.'Action')){
                 $html    =     $htmls['Empty:index']; // 空模块静态规则
             }elseif(isset($htmls[strtolower(MODULE_NAME).':_empty']) && self::isEmptyAction(MODULE_NAME,ACTION_NAME)){
                 $html    =     $htmls[strtolower(MODULE_NAME).':_empty']; // 空操作静态规则
             }
2010年06月09日 03点06分 1
1