ThinkPHP5.*版本发布安全更新
2018 年 12 月 9 日 发布本次版本更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本,推荐尽快更新到最新版本。
更新框架修复
如果你使用composer安装,并且一直保持最新版本使用的话,使用下面的指令更新到最新版本即可
composer update topthink/framework
如果你使用了git版本库安装,也请及时更新你所用的仓库版本。
如果各种原因暂时无法更新到最新版本(早期版本升级到最新版本可能存在兼容性问题,请首先参考官方手册的升级指导章节),可以参考下面的方式进行手动修正。
手动修复
5.0版本
在think\App类的module方法的获取控制器的代码后面加上
if (!preg_match('/^(\w|\.)*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
}
5.1版本
在think\route\dispatch\Url类的parseUrl方法,解析控制器后加上
if ($controller && !preg_match('/^(\w|\.)*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
}
来源 : https://blog.thinkphp.cn/ 比较严重的漏洞 谢谢 已经修补
页:
[1]