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();
over!over!over!
TP5之安全机制的更多相关文章
- 仿百度糯米TP5项目笔记
需求分析 系统三大模块 商家平台.主平台.前台模块 Thinkphp5.0实战 仿百度糯米开发多商家电商平台网盘下载 (2017-04-24 01:46:23) 转载▼ 第1章 课程简介 本章 ...
- tp5底层源码分析之------tp5.1类的自动加载机制
tp框架作为国内主流框架,目前已经发布了6.0版本,相当于3.*版本是进行了重构,今天我们从源码的角度来研究下tp5.1自动加载的实现 作为单入口框架,从入口文件看起,入口文件在public/下,那么 ...
- tp5中的配置机制
默认在application中, 一个config.php, 一个database.php, 还有一个extra文件夹,里面存放一些零散的配置. 如果在index.php初始化中调整配置路径, 那么e ...
- PHP 命名空间与自动加载机制介绍
include 和 require 是PHP中引入文件的两个基本方法.在小规模开发中直接使用 include 和 require 没哟什么不妥,但在大型项目中会造成大量的 include 和 requ ...
- tp5总结(一)
https://github.com/ABCDdouyaer/tp5-1 1.下载composer 安装框架 也可以安装包或者git安装 composer create-project topthin ...
- 【TP3.2与TP5.0区别】
Tp3.2 和 Tp5.0之间的区别 5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别. URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正 ...
- tp5使用外部类的三种方法
在tp5中使用外部类的时候有三种方法 第一种就是通过composer下载,通过这种方式下载的外部类能够支持自动加载,我们只要在使用的时候use一下命名空间就可以使用了 比如:我们的tp5第四季项目要使 ...
- ThinkPHP5.0框架开发--第2章 TP5.0架构
ThinkPHP5.0框架开发--第2章 TP5.0架构 第2章 TP5.0架构 ================================================== 上次复习 1.如 ...
- ThinkPHP5.0框架开发--第7章 TP5.0数据库操作
ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...
随机推荐
- react 创建组件 (一)createClass
如果你还没有使用ES6语法,那么定义组件,只能使用React.createClass这个helper来创建组件,下面是一段示例: var React = require("react&quo ...
- Yii自动生成项目
我喜欢尝试新鲜的东西.以前一直用gii生成工具,前几天突然发现用shell的方法,感觉很不错.特此总结一下yii的几个命令. gii的工具页面: - Controller Generator ...
- hihoCoder 1234 fractal
#1234 : Fractal 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 This is the logo of PKUACM 2016. More specific ...
- 阿里云serverMySQL无法连接问题解决纪实
作者:fbysss QQ:溜酒酒吧酒吧吾散 blog:blog.csdn.net/fbysss 声明:本文由fbysss原创,转载请注明出处 背景: 在调试程序的时候,发现数据库訪问相关的环节出现错误 ...
- UBUNTU安装PHP,即所谓得LAMP
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组经常使用来搭建动态站点或者server的开源软件,本身都是各自独立的程序,可是由于常被放在一起使用.拥有了越来越 ...
- JOIN ,LEFT JOIN ,ALL JOIN 等的区别和联系
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) ...
- Delphi通过POST传递参数给PHP
Delphi代码 ******************************************************************************************* ...
- amazon lightsail
https://51.ruyo.net/6038.html https://aws.amazon.com/cn/lightsail/
- POJ3045 Cow Acrobats —— 思维证明
题目链接:http://poj.org/problem?id=3045 Cow Acrobats Time Limit: 1000MS Memory Limit: 65536K Total Sub ...
- get all sites under IIS
https://stackoverflow.com/questions/2555668/how-to-programmatically-get-sites-list-and-virtual-dirs- ...