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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
PHP中使用CURL伪造来路抓取页面或文件
May 04 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
PHP遍历目录文件的常用方法小结
Feb 03 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
Jun 02 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 PHP
PHP实现的CURL非阻塞调用类
Jul 26 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 24 PHP
php引用传递
Apr 01 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 CURD方法之page方法详解
2014/06/18 PHP
PHP 实现的将图片转换为TXT
2015/10/21 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
Dom与浏览器兼容性说明
2010/10/25 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
微信小程序 数据绑定详解及实例
2016/10/25 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
vue 指定组件缓存实例详解
2018/04/01 Javascript
Python中的super()方法使用简介
2015/08/14 Python
python方法生成txt标签文件的实例代码
2018/05/10 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
python logging模块的使用
2020/09/07 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
几道Web/Ajax的面试题
2016/11/05 面试题
DELPHI面试题研发笔试试卷
2015/11/08 面试题
保密普查工作实施方案
2014/02/25 职场文书
工地安全生产标语
2014/06/06 职场文书
信用卡工资证明范本
2014/10/17 职场文书
商业计划书之服装
2019/09/09 职场文书