TP5框架安全机制实例分析


Posted in PHP onApril 05, 2020

本文实例讲述了TP5框架安全机制。分享给大家供大家参考,具体如下:

防止sql注入

1、查询条件尽量使用数组方式,具体如下:

$wheres = array();
 
$wheres['account'] = $account;
 
$wheres['password'] = $password;
 
$User->where($wheres)->find();

2、如果必须使用字符串,建议使用预处理机制,具体如下:

$User = D('UserInfo');
 
$User->where('account="%s" andpassword="%s"',array($account,$password))->find();

3、可以使用PDO方式(绑定参数),因为这里未使用PDO,所以不罗列,感兴趣的可自行查找相关资料。

表单合法性检测

1、配置insertFields和updateFields属性

class UserInfoModelextends Model {
 
   // 数据表名字
 
   protected $tureTableName ='user';
 
   // 配置插入和修改的字段匹配设置(针对表单)
 
   protected $insertFields =array('name','sex','age');
 
   protected $updateFields =array('nickname','mobile');
 
}

上面的定义之后,当我们使用了create方法创建数据对象后,再使用add方法插入数据时,只会插入上面配置的几个字段的值(更新类同),具体如下:

// 用户注册(示意性接口:插入)
 
   public function register() {
 
     // ...
 
     // 使用Model的create函数更安全
 
     $User= D('UserInfo');
 
     $User->create();
 
     $ID= $User->add();
 
     if($ID) {
 
        $result= $User->where('id=%d',array($ID))->find();
 
        echo json_encode($result);
 
     }
 
     // ...
 
   }

2、使用field方法直接处理

// 插入
 
M('User')->field('name,sex,age')->create();
 
// 更新
 
M('User')->field('nickname,mobile')->create();

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP安装问题
Oct 09 PHP
PR值查询 | PageRank 查询
Dec 20 PHP
php学习笔记 数组的常用函数
Jun 13 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
simplehtmldom Doc api帮助文档
Mar 26 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
ThinkPHP3.1新特性之Action参数绑定
Jun 19 PHP
深入解析PHP中foreach语句控制数组循环的用法
Nov 30 PHP
php封装的page分页类完整实例
Oct 18 PHP
php批量删除操作代码分享
Feb 26 PHP
总结的一些PHP开发中的tips(必看篇)
Mar 24 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 #PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 #PHP
TP5框架实现签到功能的方法分析
Apr 05 #PHP
TP5框架页面跳转样式操作示例
Apr 05 #PHP
TP5框架实现的数据库备份功能示例
Apr 05 #PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 #PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 #PHP
You might like
国内php原创论坛
2006/10/09 PHP
php define的第二个参数使用方法
2013/11/04 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
VUE实现密码验证与提示功能
2019/10/18 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
工程项目建议书范文
2014/03/12 职场文书
明信片寄语大全
2014/04/08 职场文书
爱国主义演讲稿
2014/05/07 职场文书
学校课外活动总结
2014/05/08 职场文书
2014党员批评和自我批评思想汇报
2014/09/21 职场文书
银行给客户的感谢信
2015/01/23 职场文书
员工安全责任协议书
2016/03/22 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python
JS数组去重详情
2021/11/07 Javascript