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 相关文章推荐
弄了个检测传输的参数是否为数字的Function
Dec 06 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
May 16 PHP
php中is_null,empty,isset,unset 的区别详细介绍
Apr 28 PHP
那些年我们错过的魔术方法(Magic Methods)
Jan 14 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
php+ajax实时刷新简单实例
Feb 25 PHP
php邮件发送的两种方式
Apr 28 PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
PHP结合Vue实现滚动底部加载效果
Dec 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
GD输出汉字的函数的分析
2006/10/09 PHP
php printf输出格式使用说明
2010/12/05 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
php验证session无效的解决方法
2014/11/04 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
Python基于select实现的socket服务器
2016/04/13 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
python 实现两个线程交替执行
2020/05/02 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
高考考python编程是真的吗
2020/07/20 Python
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
医院信息公开实施方案
2014/05/09 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
楚门的世界观后感
2015/06/03 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS
Java实现简单小画板
2022/06/10 Java/Android