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 相关文章推荐
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
May 05 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
php实现12306余票查询、价格查询示例
Apr 17 PHP
php提交表单发送邮件的方法
Mar 20 PHP
php设置页面超时时间解决方法
Sep 22 PHP
PHP QRCODE生成彩色二维码的方法
May 19 PHP
利用PHP生成静态html页面的原理
Sep 30 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
Laravel5.4框架使用socialite实现github登录的方法
Mar 20 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
Jun 17 PHP
php连接mysql数据库最简单的实现方法
Sep 24 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
Mysql的常用命令
2006/10/09 PHP
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
解析smarty 截取字符串函数 truncate的用法介绍
2013/06/20 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
Django urls.py重构及参数传递详解
2019/07/23 Python
python os模块在系统管理中的应用
2020/06/22 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
python 6种方法实现单例模式
2020/12/15 Python
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
销售自我评价
2013/10/22 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
政府法律服务方案
2014/06/14 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python