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 相关文章推荐
漂亮但不安全的CTB
Oct 09 PHP
上传多个文件的PHP脚本
Nov 26 PHP
php 分页函数multi() discuz
Jun 21 PHP
php面向对象全攻略 (九)访问类型
Sep 30 PHP
php 获取select下拉列表框的值
May 08 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
May 02 PHP
关于IIS php调用com组件的权限问题
Jan 11 PHP
PHP无法访问远程mysql的问题分析及解决
May 16 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
Feb 15 PHP
完美的php分页类
Oct 24 PHP
laravel ajax curd 搜索登录判断功能的实现
Apr 17 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缓冲区用法总结
2016/02/14 PHP
Javascript读取cookie函数代码
2010/10/16 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
jQuery链使用指南
2015/01/20 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
2018/09/30 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
python中的decimal类型转换实例详解
2019/06/26 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
python中adb有什么功能
2020/06/07 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
CSS3基础(RGBa、text-shadow、box-shadow、border-radius)
2012/11/13 HTML / CSS
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
PHP两种查询函数array/row的区别
2013/06/03 面试题
红旗团支部事迹材料
2014/01/27 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
信访稳定工作汇报
2014/10/27 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
同事打架检讨书
2015/05/06 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android