ThinkPHP5再次发布安全更新版本,请注意升级

新闻 / 259人浏览 / 0人评论

ThinkPHP在2019年1月11日再次发布了一个重要安全更新版本,该版本更新主要涉及一个重要安全更新,由于ThinkPHP框架对参数_method没有进行足够的检测会导致可能的getshell漏洞,受影响的版本包括5.0.0~5.0.23。

下面有命令行升级和手动修复两种办法,根据实际需求选择修复方法,注意在修复前先做好备份!备份!备份!

命令行修复

如果你使用命令行安装FastAdmin或有安装Composer,你可以使用以下命令将ThinkPHP5更新到最新版本即可修复

composer update topthink/framework

如果你下载的是完整包且没有安装Composer,那么你需要进行手动更新。你可以参考下面的手动修复方法。

手动修复

打开thinkphp/library/think/Request.php,找到以下代码

$this->method = strtoupper($_POST[Config::get('var_method')]);
$this->{$this->method}($_POST);

将以上代码改为

$method = strtoupper($_POST[Config::get('var_method')]);
if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
   $this->method = $method;
   $this->{$this->method}($_POST);
} else {
    $this->method = 'POST';
}
unset($_POST[Config::get('var_method')]);

温馨提示请务必先在本地进行测试,保证业务正常后再更新到生产环境。

安全提示

安全不仅仅代码安全,同时还涉及到服务器安全等多方面,建议你配置好服务器相关安全配置,做好目录权限控制,以下是安全建议:

  • 修改php.ini,禁用不安全的函数,配置如disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru


感谢博主,喝杯咖啡~

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我