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 组件化编程技巧
Jun 06 PHP
php数组函数序列之array_flip() 将数组键名与值对调
Nov 07 PHP
PHP编码规范的深入探讨
Jun 06 PHP
PHP中的替代语法简介
Aug 22 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
Feb 26 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
利用laravel搭建一个迷你博客实战教程
Aug 13 PHP
基于Laravel 5.2 regex验证的正确写法
Sep 29 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 PHP
Yii 框架使用数据库(databases)的方法示例
May 19 PHP
PHP基于openssl实现非对称加密代码实例
Jun 19 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从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
快速入门python学习笔记
2017/12/06 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
2014年消防工作实施方案
2014/02/20 职场文书
小区文明倡议书
2014/05/16 职场文书
电影建党伟业观后感
2015/06/01 职场文书
音乐剧猫观后感
2015/06/04 职场文书
党员转正大会主持词
2015/07/02 职场文书
情人节单身感言
2015/08/03 职场文书
离婚民事起诉状
2015/08/03 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
团组织关系介绍信
2019/06/24 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL