1. 配置 thinkPHP cache [application/config.php] 把type设置为sqlite3(默认是小写,第一个字母不区分大小写) 把path换成db,并指定sqlite3数据库文件的位置 2. 添加drive类 如果你打开了app_debug你会看到并没有Sqlite3的驱动,cache的驱动都在library/library/think/cache/driver/目录下,其中的sqlite不支持SQLite3数据库类型.所以需要自己新建一个Sqlite3.php…
目录 Thinkphp <= 5.0.10 缓存getshell复现 0x01 poc 0x02 跟踪源码 0x03 审计思路 0x04 补丁 0x05 参考 Thinkphp <= 5.0.10 缓存getshell复现 0x01 poc 首先看缓存函数的使用场景 然后会生成以下缓存文件 可以看到,字符串abc直接存储到以php结尾的缓存文件中.尝试使用\n换行getshell 语法有错,注释一下后面的垃圾字符,成功getshell. 0x02 跟踪源码 首先跟进18行的Cache::set…
ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由.日志.异常.模型.数据库.模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑商业项目升级,但绝对是新项目的首选(无论是WEB还是API开发). ThinkPHP V5.0——为API开发而设计的高性能框架 [ 特性 ] 主要特性包括:…
命名空间 命名空间 ThinkPHP5采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制. 如果不清楚命名空间的基本概念,可以参考PHP手册:PHP命名空间 特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \,例如: // 错误的用法 $class = new stdClass(); $xml = new SimpleXmlElement($xml…
模块设计 5.0版本对模块的功能做了灵活设计,默认采用多模块的架构,并且支持单一模块设计,所有模块的命名空间均以app作为根命名空间(可配置更改). 目录结构 标准的应用和模块目录结构如下: ├─application 应用目录(可设置) │ ├─common 公共模块目录(可选) │ ├─common.php 公共函数文件 │ ├─route.php 路由配置文件 │ ├─database.php 数据库配置文件 │ ├─config.php 应用配置文件 │ ├─module1 模块1目录…
 享 关键字: VueThink ThinkPHP5.0 Vue2.x TP5 管理后台扩展 VueThink初认识 VueThink,是一个很不错的技术框架,由广州洪睿科技的技术团队2016年研发(严重声明:我虽然在广州,但和团队成员没有任何裙带关系,我不是托儿!真心非常感谢他们的研发并开源) 看了一下,VueThink主要有以下几个特点: 1.不仅仅有后台部分,还有前端前台部分(Vue)的应用. 2.前后端分离技术的应用实践--整合应用得非常棒. 3.开源.完全免费. 4.运行环境要求PHP…
摘要 关于vue 2.0源代码分析,已经有不少文档分析功能代码段比如watcher,history,vnode等,但没有一个是分析重点难点的,没有一个是分析大命题的,比如执行router.push之后到底是如何执行代码实现路由切换的?本文旨在分享本人研究vue 2.0源代码重点难点之结果,不涉及每段源代码具体分析,源代码功能段每个人都可以去分析,只要有耐心,再参考已有高手发表的源代码分析文档,不是太难,主要是要克服一些编程技术问题,比如嵌套回调,递归,对象/数组特殊处理方法等等. 首先要说的是,…
★ 背景还要啥背景,就是觉得不可能用框架自带的 404 界面呗.可能跟之前的版本配置方法有点区别,在此做一下简单的笔记 框架:ThinkPHP 5.1,ThinkPHP5.0.20 ★ 配置过程♩. 修改 config.app 文件第一,需要关闭调试模式 // 应用调试模式 'app_debug' => false, 一般在项目的开发过程中,可以设置为"true",但是项目上线部署后,一定要关闭调试模式 第二,增加或修改配置项: http_exception_template 如…
一.项目需求 最近公司有终端桌面系统需求,需要支持本地离线运行(本地数据为主,云端数据同步),同时支持Window XP,最好跨平台.要求安装配置简单(一次性打包安装),安装包要小,安装时间短,可离线安装.技术要求使用主流技术,有利于扩展,升级,便于迁移到其它各种终端和平台应用. 二.需求分析和选择技术方案 通过需求分析,采用Web终端混合架构开发桌面应用系统.首先就是要找一个web混合架构开发框架.通过Google百度查找资料,最后主要在选择NWJS和Electron框架上,两款框架都是基于C…
1.S方法缓存设置 if(!$rows = S('indexBlog')){ //*$rows = S('indexBlog') $rows = D('blog')->select(); S('indexBlog',$rows,10); } $this->assign('rows',$rows); //$rows = S('indexBlog') $this->display(); 2.静态缓存 config.php配置文件里面配置 /*静态缓存*/ 'HTML_CACHE_ON' =&…