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 相关文章推荐
第七节--类的静态成员
Nov 16 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
七款最流行的PHP本地服务器分享
Feb 19 PHP
CodeIgniter启用缓存和清除缓存的方法
Jun 12 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
php使用递归函数实现数字累加的方法
Mar 16 PHP
php生成验证码函数
Oct 20 PHP
PHP线程的内存回收问题
Jul 08 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
Sep 07 PHP
实现php删除链表中重复的结点
Sep 27 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 26 PHP
浅谈PHP5.6 与 PHP7.0 区别
Oct 09 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代码保护--Zend Guard的使用详解
2013/06/03 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
python将字符串转换成json的方法小结
2019/07/09 Python
利用python计算时间差(返回天数)
2019/09/07 Python
python 有效的括号的实现代码示例
2019/11/11 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
后勤主管岗位职责
2014/03/01 职场文书
文秘求职信范文
2014/04/10 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
小学生倡议书范文
2014/05/13 职场文书
食品流通安全承诺书
2014/05/22 职场文书
个人对照检查材料思想汇报
2014/09/26 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers