数据监控

出于对数据安全性的考虑,YY框架提供了一种对数据操作的监控机制。同样也是运用了类似钩子的回调机制完成的。

这个监控方法的名称为db_validations,通常情况下我们也把也它定义在fun/access_validations.php文件中。

函数示例:

/**
 * 数据执行校验
 *
 * @param DBDes $dbdes
 */
function db_validations($dbdes){
    //操作表为user、操作为非查询操作,操作用户并不是管理员
    if($dbdes->table == 'user' &&$dbdes->operate !='R' && !Auth::is_admin()  ){
        log::warn('非法修改user表,视图的修改方式是:'.$dbdes->operate.',执行的SQL是:'.$dbdes->sql.'入侵IP为:'.Request::ip());
        die('非法操作');
    }
}

其中DBDes为数据库操作描述类。

DBDes属性介绍:

$real_table
真实表名(包含表前缀) 
Type
  string

$table 
表名(不含表前缀)   
Type
  string

$model 
执行当前操作的数据模型,如果不是有模型操作而是直接的原生SQL此项为null
Type
  Model   

$sql 
所执行的SQL 
Type
  string


$operate 
所执行的操作 'C' 'R' 'U' 'D'  
Type
  string