官网动态

为你精选最新的互联网资讯及开发者资讯

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

官网动态 2月前 3288 次浏览

如果你使用的FastAdmin版本在V1.0.0.20190111_beta之下,请务必更新ThinkPHP5版本。

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

由于FastAdmin基于ThinkPHP5.0进行开发,因此我们也在第一时间发布了新版本(1.0.0.20190111_beta),同时以往的旧版本已经全部下架,目前只能下载全新的版本。
下面我们提供命令行升级和手动修复两种办法,请你根据你的需求选择你的修复方法,注意在修复前先做好备份!备份!备份!

命令行修复

如果你使用命令行安装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')]);

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

安全提示

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

  • FastAdmin目录安全配置,请参考:https://forum.fastadmin.net/thread/5707
  • 禁用后台admin模块,启用独立的后台登录入口,请参考:https://forum.fastadmin.net/thread/7640
  • 新增网站配置时务必绑定public目录,同时启用open_basedir限制只允许FastAdmin的根目录,例如:fastcgi_param PHP_VALUE "open_basedir=/var/www/fastadmin/:/tmp/:/proc/";
  • 修改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

本文来自用户投稿,不代表FastAdmin立场,如有侵犯你的权利,请联系我们做删除处理。

推荐插件

扫码
分享

微信扫码分享给好友