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实现WEB动态网页静态
Oct 09 PHP
PHP URL地址获取函数代码(端口等) 推荐
May 15 PHP
PHP 数组基础知识小结
Aug 20 PHP
PHP实现根据设备类型自动跳转相应页面的方法
Jul 24 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
Dec 22 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
thinkphp5.1框架容器与依赖注入实例分析
Jul 23 PHP
基于php伪静态的实现方法解析
Jul 31 PHP
基于php解决json_encode中文UNICODE转码问题
Nov 10 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中检查文件或目录是否存在的代码小结
2012/10/22 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
js变换显示图片的实例
2013/04/16 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
js实现网页定位导航功能
2017/03/07 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
js实现计算器功能
2020/08/10 Javascript
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
Python理解递归的方法总结
2019/01/28 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
三年级学生评语
2014/04/23 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
首次购房证明
2015/06/19 职场文书
小王子读书笔记
2015/06/29 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
奖学金申请书(范文)
2019/08/14 职场文书