8.2.1.禁止访问控制器父类的成员函数

注意: 已移除

禁止访问控制器父类的成员函数(已移除)

//$refMethod->class : 当前(操作方法)所在的类,可能是当前类或者父类
//get_class($this) : 当前类
//      
//#当前(操作方法)所在的类|和get_class($this)不一定相同
$methodClass=$refMethod->class;
//#只有控制器实例的最底层子类方法才能作为操作|基类操作不可以
if($methodClass!=get_class($ctrl)){
    //#禁止访问控制器基础类的方法|重要:避免怪异异常或黑客攻击
    //只能访问当前控制器类的操作方法|不能访问父类或基类的操作|用户控制器继承问题?禁用?
    //用户控制器不要多级继承,使用trait来扩展操作方法
    $error='禁用的操作所在控制器类';
    return false;
}
return true;

禁止访问的控制器父类成员方法

/**
 * 禁止访问的类
 * 必须小写/Component::comname/MagicMethod::__set等方法不能访问
 * 
 * @var array
 */
//public $banClassNames=['qing\controller\Controller','qing\com\Component','qing\base\MagicMethod'];
public $banClassNames=[];

避免系统函数被当作控制器操作访问

禁止系统函数的访问