ThinkPHP5系列发布安全更新
本次版本更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0.23和5.1.31之前的所有版本,推荐尽快更新到最新版本。
如果暂时无法更新到最新版本,请开启强制路由并添加相应未定义路由,或者参考commit的修改 增加相关代码。
具体请参考这里:https://blog.thinkphp.cn/869075
上面的话引自官方发布的声明。
tp这次的安全漏洞,可谓影响之大,本人的网站也未能幸免,由于未及时关注tp官方的动态,所以就悲剧了。网站首页文件被修改,恶意挂马.....
ThinkPHP5.*版本发布安全更新
2018 年 12 月 9 日 发布
本次版本更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本,推荐尽快更新到最新版本。
更新框架修复
如果你使用composer安装,并且一直保持最新版本使用的话,使用下面的指令更新到最新版本即可
composer update topthink/framework
如果你使用了git版本库安装,也请及时更新你所用的仓库版本。
如果各种原因暂时无法更新到最新版本(早期版本升级到最新版本可能存在兼容性问题,请首先参考官方手册的升级指导章节),可以参考下面的方式进行手动修正。
手动修复
5.0版本
在think\App类的module方法的获取控制器的代码后面加上
if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller); }
5.1版本
在think\route\dispatch\Url类的parseUrl方法,解析控制器后加上
if ($controller && !preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller); }
V5.1.31主要更新日志
改进field方法
改进count方法返回类型
download函数增加在浏览器中显示文件功能
修正多对多模型的中间表数据写入
改进sqlsrv驱动支持多个Schemas模式查询
统一助手函数与\think\response\Download函数文件过期时间
完善关联模型的save方法 增加make方法仅创建对象不保存
修改条件表达式对静态变量的支持
修正控制器名获取
改进view方法的field解析
V5.0.23主要更新日志
Query支持调用模型的查询范围
聚合查询字段支持DISTINCT
改进闭包验证的参数
多对多关联支持指定中间表数据名称
after/before验证支持指定字段验证
改进多对多关联
改进验证类
增加afterWith和beforeWith验证规则 用于比较日期字段
完善规则提示
改进断线重连
修正软删除的destroy方法
修复模型的save方法当data变量为空 数据不验证
模型增加replace方法
MorphOne 增加 make 方法创建关联对象实例
改进count方法返回值类型
改进聚合查询方法的正则判断
改进sqlsrv驱动
完善关联的save方法
修正控制器名获取
本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了你的权益请来信告知我们删除。邮箱:595397166@qq.com