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 日期时间函数的高级应用技巧
Oct 10 PHP
PHP is_dir() 判断给定文件名是否是一个目录
May 10 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
Feb 16 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
什么情况下可以不写PHP的闭合标签“?>”
Aug 28 PHP
php准确计算复活节日期的方法
Apr 18 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
php的4种常用运行方式详解
Dec 22 PHP
php 基础函数
Feb 10 PHP
PHP命名空间简单用法示例
Dec 28 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
Oct 12 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编程与应用
2006/10/09 PHP
mysql5详细安装教程
2007/01/15 PHP
php mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
php 字符转义 注意事项
2009/05/27 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
JS字符串处理实例代码
2013/08/05 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
Python爬虫文件下载图文教程
2018/12/23 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
django框架F&Q 聚合与分组操作示例
2019/12/12 Python
weblogic面试题
2016/03/07 面试题
网络安全类面试题
2015/08/01 面试题
写好自荐信的技巧
2013/11/08 职场文书
高中生家长寄语大全
2014/04/03 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS