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
模板引擎Smarty深入浅出介绍
Dec 06 PHP
PHP安全配置
Dec 06 PHP
php中检查文件或目录是否存在的代码小结
Oct 22 PHP
PHP文件读写操作相关函数总结
Nov 18 PHP
php字符串替换函数substr_replace()用法实例
Mar 17 PHP
修复ShopNC使用QQ 互联时提示100010 错误
Nov 08 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
May 17 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
asp函数split()对应php函数explode()
Feb 27 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
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
php设计模式之简单工厂模式详解
2014/09/04 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
Python实现的彩票机选器实例
2015/06/17 Python
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
python实现二叉树的遍历
2017/12/11 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
高中生学习的自我评价
2013/12/14 职场文书
合伙经营协议书范本
2014/04/18 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
见习报告格式范文
2014/11/08 职场文书
教师个人教学总结
2015/02/11 职场文书
如何在python中实现ECDSA你知道吗
2021/11/23 Python