阿里云提示织梦DedeCMS uploadsafe.inc.php上传漏洞的解

很多将织梦dedecms安装在阿里云的ecs的站长每次都会看到阿里云盾就会通知有一个上传漏洞,引起的文件是/include/uploadsafe.inc.php文件,

原因是dedecms原生提供一个”本地变量注册”的模拟实现,原则上允许黑客覆盖任意变量,就会导致被攻击,下面告诉大家解决的办法:

我们找到并打开/include/uploadsafe.inc.php文件,在里面找到如下代码:

1 if(empty(${$_key.'_size'}))
2     {
3         ${$_key.'_size'} = @filesize($$_key);
4     }

在其下面添加如下代码:

1 $imtypes = array("image/pjpeg""image/jpeg""image/gif""image/png""image/xpng""image/wbmp""image/bmp");
2     if(in_array(strtolower(trim(${$_key.'_type'})), $imtypes)){
3         $image_dd = @getimagesize($$_key); if($image_dd == false){
4             continue;
5         }
6         if (!is_array($image_dd)) {
7             exit('Upload filetype not allow !');
8         }
9     }