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数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
php调用mysql存储过程
Feb 14 PHP
php中禁止单个IP与ip段访问的代码小结
Jul 04 PHP
php中\r \r\n \t的区别示例介绍
Feb 08 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
解决php表单重复提交实现方法
Sep 29 PHP
Zend Framework框架路由机制代码分析
Mar 22 PHP
php使用preg_match()函数验证ip地址的方法
Jan 07 PHP
php连接mysql数据库
Mar 21 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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图片验证码制作实现分享(全)
2012/05/10 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
JS 如果改变span标签的是否隐藏属性
2011/10/06 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
puppeteer库入门初探
2019/01/09 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
python实现简单爬虫功能的示例
2016/10/24 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
python对象与json相互转换的方法
2019/05/07 Python
python用for循环求和的方法总结
2019/07/08 Python
Python3+selenium配置常见报错解决方案
2020/08/28 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
什么是继承
2013/12/07 面试题
司机辞职报告范文
2014/01/20 职场文书
颁奖典礼主持词
2014/03/25 职场文书
领导参观欢迎词
2015/01/26 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python