tp5框架原理详解_TP5框架安全机制实例分析

本文实例讲述了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程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

碧蓝航线8.20服务器维护,碧蓝航线半人马来袭 8.20更新公告

半人马来袭!碧蓝航线将于8月20日9:00~11:00对安卓、iOS全港区进行为期2小时的改造建设,维护后将开启限时活动「盛夏的半人马座」,一起来看看吧。一、内容新增1.开启限时活动「盛夏的半人马座」,活动时间8月20日维护后~8月30日&…

MySQL安装与设置

下载zip,配置 1,系统变量添加:...\mysql-5.7.10-winx64,环境变量添加:%MYSQL_HOME%\bin 2,修改MySQL.ini basedir(同系统变量路径) datadir(系统变量路径\data) port 33…

后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况,以及解决方案...

后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况。例如:201511200001725439这样一个Long类型的整数,传给前端后会变成201511200001725440。 解决方法: 方法一:在后台将这个Long类型的字段转换成String类型…

传奇服务端各文件用途说明

MirServer(服务器目录)├DBServer(数据库服务端)│ ├Connection│ ├FDB(人物数据库,数据库格式为传奇自定义格式)│ ├Log(角色选择服务端日志)│ ├!AddrTable.txt(IP地址配置)│ ├!IdList.txt(交费账号列表,!Setup.exe中ServiceModeTRUE时起作用)│…

认证服务器协议,基于口令的客户端/服务器认证协议

摘要:Identity authentication is the precondition for secure communication between the client and the server. Kim and Chung presented a mutual authentication scheme for client/server scene. The authors realized the mutual authentication with the …

印章仿制工具_仿制图章工具怎么用

在日常生活中,有时候我们需要帐单表格上的文字,用PS的防制图章工具,可以十分方便快捷的处理出来。我想最恨学霸的就是学渣了吧,因为他们每次考试成绩都是科科满分。是家长嘴里别人家的孩子。那么今天就教学渣一个神技能&#xff0…

java日期的运用(DateUtils工具类)

public static void main(String[] args) { Date now new Date(); SimpleDateFormat sd new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("------当前时间--------:" sd.format(now)); //年: 加、减操作 System.out.…

1、rbac权限组件-初识, 中间件校验1

1、权限组件rbac 1、什么是权限 1 项目与应用 2 什么是权限? 一个包含正则表达式url就是一个权限 who what how ---------->True or Flase 2、版本1:用户表与权限url表 对应关系 # 版本1UserInforname pwdpermissionmodels.manytomany(Permissi…

html中视频播放完后可以跳到另一个html

2:jquery 的例子如下$(document).ready(function(){$("#audioId").bind(ended, function(){location.href"other.html";});});转载于:https://www.cnblogs.com/mailan/p/4972123.html

实现打印异常日志_老生常谈SpringAop日志收集与处理做的工具包

场景 :使用Spring Aop拦截参数日志目前大部分做法都基本上大同小异,不想日后每个项目工程都写一份这样的Aop拦截处理日志的代码,甚至代码侵入。我想知道一些相对重要的请求方法的请求参数,响应参数,请求头,以及内部耗时,方法是成功还是失败等等信息。发生错误时我也不知道执行到…

服务器128g内存显示64g,64g内存服务器

64g内存服务器 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。接口名称GetCloudPhoneServerModelsGetCloudPhoneServerModels功能描…

[LeetCode]--71. Simplify Path

Given an absolute path for a file (Unix-style), simplify it. For example, path “/home/”, > “/home” path “/a/./b/../../c/”, > “/c” click to show corner cases. Corner Cases: Did you consider the case where path “/../”? In this case, …

IOPLL动态重配

连接 Avalon -MM接口 mgmt_waitrequest:当 PLL 重配置进程开始后,此端口变高并在 PLL 重配置期间保持高电平。 PLL 重配置进程完成后,此端口变低。 I/O PLL重配写操作步骤: 1、 为mgmt_address和mgmt_writedata设置有效值,并且…

android 的属性动画

public void zyluoti(View v){ValueAnimator animator ValueAnimator.ofFloat(0,screenHeight - mImageView.getHeight());//设置属性动画的值,值的类型为floatanimator.setDuration(1000);//动画的作用时间animator.setTarget(mImageView);//设置动画的作用目标an…

qt中如何模拟按钮点击_如何快速在 Shopify 中加入按钮

假如你会 CSS , HTML , JS 三件套,那么修改 Shopify 代码将不会太难(毕竟一个模板中的代码量还是挺多的,除非深入研究了代码,不然改起来还是会比较麻烦的)。但挺多玩家是不会这三件套的,修改代码来达到添加…

clear ,refresh,free

itab 即是内表也是工作区的情况下,即with header line. clear itab,仅清空HEADER LINE,对内表数据存储空间不影响,保留内存区。 refresh itab,不清空HEADER LINE,清除内表数据存储空间,但保存内…

浅谈关于java中的深浅拷贝

一.浅拷贝(shallow copy) 1.如何实现浅拷贝? Object类 是所有类的直接或间接父类,Object中存在clone方法,如下 protected native Object clone() throws CloneNotSupportedException; 如果想要使一个类的对象能够调用clone方法 ,则需要实现Cloneable接口, 并重写 clone方法: p…

iOS开发-Protocol协议及委托代理(Delegate)传值

前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要…

git 查看分支编码_12个常用的Git命令,赶紧记一波!

今天齐姐简单讲下 Git 的实现原理,知其所以然才能知其然;并且梳理了日常最常用的 12 个命令,分为三大类分享给你。本文的结构如下:作者和开发原由Git 的数据模型常用命令资源推荐作者和开发原由Talk is cheap. Show me the code.这…

在域环境下搭建samba服务器

环境:samba:smbserver: 192.168.0.18AD:rise.com:192.168.0.37组:zixun xingzheng teacher class admin共享目录:zixun xingzheng xueshu other一.安装Samba服务器yum install -y samba二.把linux加入到ad中1.先…