织梦CMS系统的安全优化设置_防止网站被黑(持续更新)
织梦CMS在安装完成后,新人往往会直接开始开发使用,忽视了一些安全优化的操作,这样会导致后期整个系统安全系数降低,被黑或者被注入的概率极高,毕竟这世界百分百存在着极多的无聊hacker对全网的网站进行扫描,扫到你这个菜站,尤其是使用率极高的DEDECMS,对你的站点下手的欲望更高,所以在开发前做好安全防范还是很有必要的!
安全设置一:删文件
安装完成后会有一些文件,可以说是冗余文件,完全没有作用,反而带来被黑的危险,删除即可,以下文件均可删除:
-
/install
(安装后的余留文件,没用,文件夹删除) -
/member
(会员功能文件,大数企业站没用,文件夹删除,若需要会员功能的就不能删) -
/plus/guestbook
(留言簿模块,大数企业站没用,文件夹删除,以防SQL注入,若需要留言功能的就不能删) -
/company
(企业模块,文件夹删除,不需要,最新版本已经没有这个文件夹了) -
/special
(专题功能,如果你不需要这个功能,文件夹删除,需要就别删,大部分是不需要的)
/dede/media_edit.php
/dede/media_main.php
/dede/file_manage_control.php
/dede/file_manage_main.php
/dede/file_manage_view.php`
(管理员目录/dede,后台文件管理器就是这些文件,经常被黑客利用挂马,除了删除这些文件外,还应该讲dede这个文件夹名称改掉) -
/dede/sys_sql_query.php
(SQL命令运行器,不需要的话也可以删除) -
/dede/tag.php
(tag功能,不需要的话也可以删除) - /plus/目录下的一些文件删除
- 删除:plus/guestbook文件夹【留言板,后面我们安装更合适的留言本插件】;
删除:plus/task文件夹和task.php【计划任务控制文件】 删除:plus/ad_js.php【广告】
删除:plus/bookfeedback.php和bookfeedback_js.php【图书评论和评论调用文件,存在注入漏洞,不安全】
删除:plus/bshare.php【分享到插件】
删除:plus/car.php、posttocar.php和carbuyaction.php【购物车】
删除:plus/comments_frame.php【调用评论,存在安全漏洞】
删除:plus/digg_ajax.php和digg_frame.php【顶踩】
删除:plus/download.php和disdls.php【下载和次数统计】 删除:plus/erraddsave.php【纠错】
删除:plus/feedback.php、feedback_ajax.php、feedback_js.php【评论】
删除:plus/guestbook.php【留言】 删除:plus/stow.php【内容收藏】 删除:plus/vote.php【投票】
安全设置二:参数修改
1./include/filter.inc.php文件(位置大概在46行左右),即SQL注入漏洞修复
return $svar;
修改为
return addslashes($svar);
2./include/uploadsafe.inc.php文件
$image_dd = @getimagesize($$_key);
修改为
$image_dd = @getimagesize($$_key); if($image_dd == false){ continue; }
php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml
修改为
php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml|htm|html
3./plus/search.php文件
$keyword = addslashes(cn_substr($keyword,30));
修改为
$typeid = intval($typeid); $keyword = addslashes(cn_substr($keyword,30));
4./include/dialog/select_soft_post.php文件,也就是任意文件上传漏洞
$fullfilename = $cfg_basedir.$activepath.'/'.$filename;
修改为
if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) {
ShowMsg("你指定的文件名被系统禁止!",'javascript:;');
exit();
}
$fullfilename = $cfg_basedir.$activepath.'/'.$filename;
5./dede/media_add.php文件,也就是任意文件上传漏洞
$fullfilename = $cfg_basedir.$filename;
修改为
if (preg_match('#\.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) {
ShowMsg("你指定的文件名被系统禁止!",'javascript:;');
exit();
}
$fullfilename = $cfg_basedir.$filename;
6./include/common.inc.php文件,也就是SESSION变量覆盖导致SQL注入漏洞(此漏洞织梦官方在最新的版本中已经修复)
if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$svar) )
修改为
if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#',$svar) )
7./include/payment/alipay.php文件,也就是dedecms支付模块注入漏洞(此漏洞织梦官方在最新的版本中已经修复)
$order_sn = trim($_GET['out_trade_no']);
修改为
$order_sn = trim(addslashes($_GET['out_trade_no']));
安全设置三:目录修改
1.后台管理功能文件夹dede:这是后台文件,需要将这个文件夹的名称修改,比如改为login,那么后台登陆地址就由www.xxx.com/dede变为www.xxx.com/login
2.将/data/文件夹移到Web访问目录外(来自dedecms官方建议):
-将/data/文件夹移至根目录的上一级目录
-修改配置文件:/include/common.inc.php中DEDEDATA变量
define('DEDEDATA', DEDEROOT.'/data');
改为
define('DEDEDATA',DEDEROOT.'/../data');
3.目录权限设置:选择网站根目录,如wwwroot,然后使用网站控制面板的“权限” 设置功能,将整站所有文件设置为只读(755权限)。 老版本可能登录后台会提示验证码错误,进入wwwroot目录,选中data目录,然后点击“权限”单独将data设置为完全控制(可读可写)权限。生成文档的目录也可单独设置完全控制权限,或者在需要更新文档时再将wwwroot目录设置为完全控制。注意:更新完文档要再次设置为只读。
4.目录保护:为防止木马被上传执行,使用控制面板中的“目录保护”功能(大部分控制面板都有这个功能,一些安全软件也有),依次选择templates、uploads、data这三个目录添加保护(以禁止脚本执行,防止黑客上传木马)
安全设置四:使用第三方安全插件
可下载第三方防护插件,例如:360出品的“织梦CMS安全包” 、百度旗下安全联盟出品的“DedeCMS顽固木马后门专杀”;
本人推荐百度旗下安全联盟出品的“DedeCMS顽固木马后门专杀”
下载地址:https://download.csdn.net/download/weilapls/10655074
前提工作:注意下载文件到本地,解压后用“编辑器”(可直接用window系统’记事本’打开)打开dede_killer_v2.php 修改密码(默认密码不让登陆!),如果你的dedecms设置了data目录,请对应修改后保存。
安装方式:解压>上传至网站根目录(一般是wwwroot)
打开方式: http://你的网站地址/dede_killer_v2.php
注意
1.跟目录下必须有data目录和/data/common.inc.php文件,如不存在会报“请将该文件放到您站点的根目录,和index.php同一级目录”错误。
2.文件太多执行时间较长,可能超时,可以修改ini_set("memory_limit", "100m")值为ini_set("memory_limit", "500m"),最大不能超过1000M。
更新于2018-09-09,后期有更新,将会持续更新本文