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 04 PHP
php设计模式小结
Feb 15 PHP
php计算税后工资的方法
Jul 28 PHP
PHP递归创建多级目录
Nov 05 PHP
PHP基于单例模式实现的mysql类
Jan 09 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
php中文字符串截取多种方法汇总
Oct 06 PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 PHP
Ajax+Jpgraph实现的动态折线图功能示例
Feb 11 PHP
Yii2 queue的队列使用详解
Jul 19 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
深入理解PHP内核(一)
2015/11/10 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
javascript之函数直接量(function(){})()
2007/06/29 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
python pygame实现方向键控制小球
2019/05/17 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
送给他或她的礼物:FUN.com
2018/08/17 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
英语文学专业学生的自我评价
2013/10/31 职场文书
诉讼代理人授权委托书
2014/04/08 职场文书
节能环保演讲稿
2014/08/28 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android