(二) 安全防范基础
来源:互联网 发布:lol for mac 美服下载 编辑:程序博客网 时间:2024/06/05 03:28
1. 表单合法性的验证,防止字段注入
- 在自定义模型中
- insertFields 属性 ---只允许插入的字段
- updateFields 属性 ---只允许更新的字段
- 在控制器中
- $model -> field('字段列表')->create()
- $model ->field('字段列表') -> save()
- 辅助方法
- $model -> where(条件)
- 条件最好用数组形式 , 可以有防注入等功能
- $model -> where(条件)
2. 输入过滤
- 使用框架的 I 方法 ,默认使用 htmlspecialchars 过滤
- 可以设置全局过滤方法 'DEFAULT_FILTER' => 'strip_tags'
- 也可以在写入数据的时候过滤
- $model->filter('strip_tags')->add();
3. 表单令牌
- 在应用或者模块的配置目录下新建行为定义文件 tags.php , 在文件中写入
return array('view_filter'
=>array('Behavior\TokenBuildBehavior'),
);
- 在配置文件中 (不是tags.php), 可以配置令牌相关配置
- 'TOKEN_ON' => true, // 是否开启令牌验证 默认关闭
- 'TOKEN_NAME' => '__hash__', // 令牌验证的表单隐藏字段名称,默认为__hash__
- 'TOKEN_TYPE' => 'md5', //令牌哈希验证规则 默认为MD5
- 'TOKEN_RESET' => true, //令牌验证出错后是否重置令牌 默认为true
- 在视图中 ,通过 {__TOKEN__} 指定表单令牌 位置
- 在控制器中可以通过
- C('TOKEN_ON',false) 设置临时不开启令牌验证
- 令牌只有在用 $model -> add() , $model -> save() 才会进行验证
- 自定义验证令牌
- if (!$model->autoCheckToken($_POST)){
- // 令牌验证错误
- }
4. 防止SQL 注入
- 尽量使用数组方式
- 使用字符串 , 使用预处理机制
- $Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();
- $model->query('select * from user where id=%d and status=%d',$id,$status);
- 自动完成跟自动完成机制进行自定义过滤
- 尽量使用PDO方式,使用参数绑定
阅读全文
0 0
- (二) 安全防范基础
- 二层安全威胁攻击防范
- 安全防范基础:关于电脑木马程序隐藏一个的新方法
- 网站安全防范PHP方面(基础技术防卫篇)
- 交换机安全防范技术
- 交换机安全防范技术
- 交换机安全防范技术
- Windows安全防范
- php安全防范
- 个人电脑安全防范
- Upload Image 安全防范
- windows安全防范
- Apache服务器安全防范
- web层安全防范
- PHP安全防范!
- PHP安全防范
- linux安全防范chkconfig
- PHP安全防范
- pip不是内部或外部命令
- 将jar文件打包成exe安装文件(一)
- 开篇总结
- 将jar文件打包成exe安装文件(二)
- 连续子数组的最大值O(n)解法
- (二) 安全防范基础
- web前端学习日记34-----继续vue
- 将jar文件打包成exe安装文件(三)
- android 获得屏幕宽度 高度
- Maven:浅析依赖(dependency)关系中 scope 的含义
- Log4j写入数据库详解
- 浅谈分布式事务
- java session统计在线人数
- struts2的iterator标签遍历HashMap