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+javascript实现二级级联菜单的制作
May 06 PHP
php获取某个目录大小的代码
Sep 10 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
php中用socket模拟http中post或者get提交数据的示例代码
Aug 08 PHP
kohana框架上传文件验证规则写法示例
Jul 14 PHP
php获取系统变量方法小结
May 29 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 PHP
PHP对象、模式与实践之高级特性分析
Dec 08 PHP
PHP异步进程助手async-helper
Feb 05 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 11 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 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中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
php基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
PHP7.0版本备注
2015/07/23 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
Numpy array数据的增、删、改、查实例
2018/06/04 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
EJB的激活机制
2013/10/25 面试题
2014厂务公开实施方案
2014/02/17 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
好的促销活动方案
2014/08/21 职场文书
社区党建工作总结2015
2015/05/13 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript