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 相关文章推荐
基于mysql的论坛(7)
Oct 09 PHP
Smarty Foreach 使用说明
Mar 23 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
PHP中nowdoc和heredoc使用需要注意的一点
Mar 21 PHP
浅谈PHP解析URL函数parse_url和parse_str
Nov 11 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 PHP
golang与PHP输出excel示例
Jul 22 PHP
PHP XML和数组互相转换详解
Oct 26 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 PHP
imagettftext() 失效,不起作用
Mar 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
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
地摊中国 - 珍藏老照片
2020/08/18 杂记
PHP5 安装方法
2006/10/09 PHP
用PHP实现WEB动态网页静态
2006/10/09 PHP
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
基于jquery循环map功能的代码
2011/02/26 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
2018/05/15 NodeJs
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
Python实现随机漫步功能
2018/07/09 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
应届生的求职推荐信范文
2013/11/30 职场文书
三孔导游词
2015/02/05 职场文书
会计主管岗位职责
2015/04/02 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
python字典进行运算原理及实例分享
2021/08/02 Python
Python初识逻辑与if语句及用法大全
2021/08/07 Python
nginx.conf配置文件结构小结
2022/04/08 Servers