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 相关文章推荐
几种显示数据的方法的比较
Oct 09 PHP
for循环连续求和、九九乘法表代码
Feb 20 PHP
MySQL的FIND_IN_SET函数使用方法分享
Mar 27 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
Sep 22 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
Yii框架ACF(accessController)简单权限控制操作示例
Apr 26 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 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
图书管理程序(一)
2006/10/09 PHP
URL Rewrite的设置方法
2007/01/02 PHP
php检测useragent版本示例
2014/03/24 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
javascript验证身份证号
2015/03/03 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
广告学毕业生求职信
2014/01/30 职场文书
2014年图书室工作总结
2014/12/09 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
2015年推普周活动总结
2015/03/27 职场文书
服装店员工管理制度
2015/08/07 职场文书
校长新学期寄语2016
2015/12/04 职场文书