验证码

杂项

验证码

2021-03-24 08:41:25 967阅读 758赞
首先使用Composer安装think-captcha扩展包:composer require topthink/think-captcha官方的5.0版本的扩展库版本号都是1.*,2.0版本均为ThinkPHP5.1版本专用。验
图像处理

杂项

图像处理

2021-03-24 08:40:47 862阅读 564赞
安装扩展使用Composer安装ThinkPHP5的图像处理类库:composer require topthink/think-image图像操作下面来看下图像操作类的基础方法。打开图像文件假设当前入口文件目录下面有一个imag
文件处理

杂项

文件处理

2021-03-24 08:39:58 908阅读 703赞
ThinkPHP5.0内置了一个文件处理类 \think\File,内置的文件上传操作也是调用了该类进行处理的。File类继承了PHP的SplFileObject类,因此可以调用SplFileObject类所有的属性和方法。
单元测试

杂项

单元测试

2021-03-24 08:39:05 1078阅读 846赞
单元测试首先安装ThinkPHP5的单元测试扩展,进入命令行,切换到tp5的应用根目录下面,执行:composer require topthink/think-testing官方的5.0版本的扩展库版本号都是1.*,2.0版本均
输入安全

安全

输入安全

2021-03-24 08:38:32 669阅读 974赞
虽然5.0的底层安全防护比之前版本要强大不少,但永远不要相信用户提交的数据,建议务必遵守下面规则:设置public目录为唯一对外访问目录,不要把资源文件放入应用目录;开启表单令牌验证避免数据的重复提交,能起到CSRF防御作用;使用框架提供的请求变量获
数据库安全

安全

数据库安全

2021-03-24 08:38:01 657阅读 966赞
在确保用户请求的数据安全之后,数据库的安全隐患就已经很少了,因为5.0版本的数据操作使用了PDO预处理机制及自动参数绑定功能,请确保:尽量少使用数组查询条件而应该使用查询表达式替代;尽量少使用字符串查询条件,如果不得已的情况下 使用手动参数绑定功能;
上传安全

安全

上传安全

2021-03-24 08:37:34 995阅读 586赞
网站的上传功能也是一个非常容易被攻击的入口,所以对上传功能的安全检查是尤其必要的。系统的think\File提供了文件上传的安全支持,包括对文件后缀、文件类型、文件大小以及上传图片文件的合法性检查,确保你已经在上传操作中启用了这些合法性检查。为了方便
其它安全建议

安全

其它安全建议

2021-03-24 08:35:59 804阅读 521赞
其它的一些安全建议:对所有公共的操作方法做必要的安全检查,防止用户通过URL直接调用;不要缓存需要用户认证的页面;对用户的上传文件,做必要的安全检查,例如上传路径和非法格式;对于项目进行充分的测试,不要生成业务逻辑的安全隐患(这可能是最大的安全问题)
验证器

验证

验证器

2021-03-24 08:35:22 875阅读 668赞
概述ThinkPHP5.0验证使用独立的\think\Validate类或者验证器进行验证。独立验证任何时候,都可以使用Validate类进行独立的验证操作,例如:$validate = new Validate([&n
验证规则

验证

验证规则

2021-03-24 08:34:36 832阅读 790赞
版本新增功能5.0.4支持传入field参数批量设置验证字段的描述信息设置规则可以在实例化Validate类的时候传入验证规则,例如:$rules = [    'name'
错误信息

验证

错误信息

2021-03-24 08:33:46 908阅读 546赞
验证规则的错误提示信息有三种方式可以定义,如下:使用默认的错误提示信息如果没有定义任何的验证提示信息,系统会显示默认的错误信息,例如:$rule = [    'name'&
验证场景

验证

验证场景

2021-03-24 08:33:10 551阅读 866赞
验证场景版本新增功能5.0.4增加hasScene方法用于检查是否存在验证场景可以在定义验证规则的时候定义场景,并且验证不同场景的数据,例如:$rule = [    'name&#
控制器验证

验证

控制器验证

2021-03-24 08:32:26 567阅读 949赞
如果你需要在控制器中进行验证,并且继承了\think\Controller的话,可以调用控制器类提供的validate方法进行验证,如下:$result = $this->validate(   
模型验证

验证

模型验证

2021-03-24 08:31:50 1023阅读 820赞
在模型中的验证方式如下:$User = new User;$result = $User->validate(    [   
内置规则

验证

内置规则

2021-03-24 08:31:13 897阅读 588赞
系统内置的验证规则如下:格式验证类require验证某个字段必须,例如:'name'=>'require'number 或者 integer验证某个字段的值是否为数字(采用filter_var验证),例如:
静态调用

验证

静态调用

2021-03-24 08:30:46 656阅读 903赞
如果需要使用内置的规则验证单个数据,可以使用静态调用的方式。// 日期格式验证Validate::dateFormat('2016-03-09','Y-m-d'); // true//&n
表单令牌

验证

表单令牌

2021-03-24 08:29:00 915阅读 942赞
验证规则支持对表单的令牌验证,首先需要在你的表单里面增加下面隐藏域:<input type="hidden" name="__token__" value="{$R
调试模式

错误和调试

调试模式

2021-03-24 08:28:16 903阅读 502赞
ThinkPHP有专门为开发过程而设置的调试模式,开启调试模式后,会牺牲一定的执行效率,但带来的方便和除错功能非常值得。我们强烈建议ThinkPHP开发人员在开发阶段始终开启调试模式(直到正式部署后关闭调试模式),方便及时发现隐患问题和分析、解决问题
异常处理

错误和调试

异常处理

2021-03-24 08:27:36 547阅读 819赞
和PHP默认的异常处理不同,ThinkPHP抛出的不是单纯的错误信息,而是一个人性化的错误页面。默认异常处理在调试模式下,系统默认展示的错误页面:只有在调试模式下面才能显示具体的错误信息,如果在部署模式下面,你可能看到的是一个简单的提示文字,例如:本
抛出异常

错误和调试

抛出异常

2021-03-24 08:26:56 832阅读 876赞
手动抛出异常可以使用\think\Exception类来抛出异常// 使用think自带异常类抛出异常throw new \think\Exception('异常消息', 100006);如果不