织梦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;
修改为
returnaddslashes($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))){
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))){
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这三个目录添加保护(以禁止脚本执行,防止黑客上传木马)。