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中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
浅谈discuz密码加密的方式
May 22 PHP
ThinkPHP行为扩展Behavior应用实例详解
Jul 22 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
深入理解PHP中的empty和isset函数
May 26 PHP
php版微信js-sdk支付接口类用法示例
Oct 12 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
Nov 29 PHP
PHP数组内存利用率低和弱类型详细解读
Aug 10 PHP
PHP addslashes()函数讲解
Feb 03 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 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数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
使用symfony命令创建项目的方法
2016/03/17 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
新闻内页-JS分页
2006/06/07 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
python实现探测socket和web服务示例
2014/03/28 Python
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
python使用KNN算法手写体识别
2018/02/01 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
Python远程linux执行命令实现
2020/11/11 Python
AJAX的全称是什么
2012/11/06 面试题
银行职业规划书范文
2013/12/28 职场文书
优秀毕业生自荐信范文
2014/01/01 职场文书
班级安全教育实施方案
2014/02/23 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
医师定期考核实施方案
2014/05/07 职场文书
销售团队口号大全
2014/06/06 职场文书
毕业班工作总结
2015/08/10 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
python实现图片批量压缩
2021/04/24 Python