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 smarty的预保留变量总结
Dec 04 PHP
php 过滤器实现代码
Aug 09 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
PHP中is_file不能替代file_exists的理由
Mar 04 PHP
php实现短信发送代码
Jul 05 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
基于swoole实现多人聊天室
Jun 14 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
Yii2.0框架模型多表关联查询示例
Jul 18 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
Python中join和split用法实例
2015/04/14 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
Numpy中的mask的使用
2018/07/21 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
python实现得到当前登录用户信息的方法
2019/06/21 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
Python猴子补丁知识点总结
2020/01/05 Python
南京迈特望C/C++面试题
2012/07/09 面试题
护理个人求职信范文
2014/01/08 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
理财学专业自荐书
2014/06/28 职场文书
环保项目建议书
2014/08/26 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏