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 文章调用类代码
Aug 11 PHP
教你如何使用php session
Oct 28 PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 PHP
Yii查询生成器(Query Builder)用法实例教程
Sep 04 PHP
PHP易混淆函数的区别及用法汇总
Nov 22 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
php实现网站留言板功能
Nov 04 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
laravel 事件/监听器实例代码
Apr 12 PHP
PHP使用Redis实现Session共享的实现示例
May 12 PHP
PHP __call()方法实现委托示例
May 20 PHP
Laravel 验证码认证学习记录小结
Dec 20 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
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
Python脚本实时处理log文件的方法
2016/11/21 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
python 模拟登录B站的示例代码
2020/12/15 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
应届生人事助理求职信
2013/11/09 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
教学实验楼管理制度
2014/02/01 职场文书
中学生获奖感言
2014/02/04 职场文书
四下基层实施方案
2014/03/28 职场文书
小人国观后感
2015/06/11 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
sql注入报错之注入原理实例解析
2022/06/10 MySQL