0x00.前言
ThinkPHP被认为是PHP入门级框架。作为菜鸡的我,据破神经验,寒假打算系统学习一下ThinkPHP框架开发及梳理其安全问题。恰逢契机,写篇文章梳理一下ThinkPHP。
因为是梳理漏洞,不可能每个漏洞都分析太详细(每一个漏洞都够发一篇文章了),所以每个漏洞都附带一个详细链接供大家参考。毕竟也不是自己挖的漏洞,肯定比不上原创描述的精准透彻。都是学习别人的东西,重要的是有所收获。
刚刚学习ThinkPHP,若有错误,还请大家多多指点谅解。
0x01.ThinkPHP简介
——大道至简,开发由我
ThinkPHP(简称TP)是一个快速、兼容而且简单的轻量级国产PHP开发框架。其遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式。
优点:中文文档、快速、简单、灵活
缺点:不规范
ThinkPHP的这些优点正好迎合了目前国内IT行业敏捷开发、短期效益、廉价成本的这种形势,故占有不小的市场;其缺点也相对应产生了不少的安全问题。
0x02.ThinkPHP发展
——一波三折,重构升级
.01.15-.04.05:
FSC-ThinkPHP-PHP5重构-2.0版本
2.0版本框架之前这段时间,TinkPHP知名度不高,使用其做网站也比较少。目前,可搜索到漏洞也是屈指可数。故不是本文重点。
.04.05-.12.11:3.x*金时代
在ThinkPHP3.2.3版本的*金时期,据说国内PHP网站里面有三分之一都是基于ThinkPHP开发。时至金日,仍然有很多公司使用并维护ThinkPHP3.x版本的框架开发的网站。故ThinkPHP3.x版本的漏洞是本文重点。
.12.11-目前:5.x时期
转型重构,功能更加完善,跻身国际主流开发框架。正是TinkPHP的灵活、轻量、快速必然对应其规范性、严谨性降低,故产生更多安全问题。
详细发展史可参考: