dedecms普通企业网站如何防黑与恢复

2018-09-13 12:49:08 济南网站建设
STEP1:删除最新dedecms程序包那些没用的又容易被挂马入侵的程序文件
 
1-1、删除以下文件夹和文件
 
member 会员文件夹整个删除
 
special 专题文件夹整个删除
 
install 安装文件夹整个删除
 
robots.txt 文件删除
 
1-2、删除 /templets/default 官方默认模板这个文件夹
 
1-3、plus 文件夹除了以下 1个文件夹 和 5个php文件,其他的文件统统删除
 
/plus/img (这个文件夹)
 
/plus/count.php
 
/plus/diy.php
 
/plus/list.php
 
/plus/search.php
 
/plus/view.php
 
1-4、把 dede 后台文件夹改名,改复杂一点,或伪装成无碍的文件夹名。
 
 
 
STEP2:修复刚刚下载的dedecms最新程序包里已知漏洞
 
2-1、打开 /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();
 
}
 
 
 
2-2、打开 /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("你指定的文件名被系统禁止!",'java script:;');
 
exit();
 
}
 
 
 
STEP3:从整站备份文件夹里检查 模板 和 文档图片文件夹 是否有挂马和后门等可疑文件或代码
 
  这一步需要一点专业知识,如果你实在不懂,就到百度搜索,遇到可疑的地方截图请教别人,慢慢见的后门和木马代码多了,你就离成为大神不远了。
 
  3-1、每一个跟模板有关的js文件都要一一打开来细心检查,因为挂马很多在js文件中,不然你前面和后面的工作都白做了。
 
  3-2、每一个跟模板有关的css 和 images 文件夹下都要细心检查是否有后门文件,除了图片文件、css文件、字体文件,其他的一律删除,删错了也不用担心,有整站打包的备份在。
 
  3-3、每一个模板htm文件都要细心检查是否有挂马代码存在,检查你的模板文件夹里是否有后门文件,比如php文件,asp文件,其他可疑的格式文件一律删除,删错了也不用担心,有整站打包的备份在。
 
  3-4、你备份文件中的文档图片文件夹 uploads 文件夹,每一个文件夹都要打开,都要细心检查是否有后门文件,除了图片文件和你的附件,其他的一律删除,删错了也不用担心,有整站打包的备份在。
 
  3-5、/data/common.inc.php 和  /data/config.cache.inc.php 一会配合打包要用到,所以也要检查。
 
  3-6、/include/extend.func.php 可能有二次开发的自定义方法在里面,所以也要检查。
 
  3-7、其他你曾经二次开发修改过的文件。
 
 
 
STEP4:把处理过的以下文件和文件夹复制到处理过的官方最新程序对应的位置里
 
/data/common.inc.php
 
/data/config.cache.inc.php
 
/include/extend.func.php
 
/templets/你的模板文件夹
 
/uploads
 
其他你曾经二次开发修改过的文件
 
还有可能你的模板关联的css 和 js 和 images图片,这个自己看着办,复制进来后,打包本地整好的文件
 
 
 
STEP5:清空线上网站所有文件,上传本地整好的文件包
 
5-1、把主机里现在网站里的所有文件清空,不需要到mysql清除数据哦。虚拟主机的小伙伴可以借助主机面板一键清空,省事又干净。
 
5-2、把刚刚整理好的最新程序打包上传到主机里解压出来,不需要重新安装哦
 
5-3、登录网站后台,打开 系统-系统设置-基本参数,点击确认一次,再去生成全站。
 
 
 
STEP6:利用伪静态功能禁止以下目录运行php脚本
 
linux主机的用户一般都是apache环境,使用 .htaccess 文件来设置,如果你网站根目录已经存在这个文件,那就复制一下代码添加进去,没有这个文件的小伙伴可以下载下来放进去
 
RewriteEngine on
 
#安全设置 禁止以下目录运行指定php脚本
 
RewriteCond % !^$
 
RewriteRule a/(.*).(php)$ – [F]
 
RewriteRule data/(.*).(php)$ – [F]
 
RewriteRule templets/(.*).(php|htm)$ – [F]
 
RewriteRule uploads/(.*).(php)$ – [F]
 
 
 
windows主机的用户一般都是iis7、iis8环境,使用 web.config 文件来设置,请确认你的主机已经开启了伪静态而且网站根目录有 web.config 文件,有这个文件的可以复制以下代码添加到对应的rules内,没有这个文件的小伙伴可以下载下来放进去
 
<rule name="Block data" stopProcessing="true">
 
<match url="^data/(.*).php$" />
 
<conditions logicalGrouping="MatchAny">
 
<add input="{USER_AGENT}" pattern="data" />
 
<add input="{REMOTE_ADDR}" pattern="" />
 
</conditions>
 
<action type="AbortRequest" />
 
</rule>
 
<rule name="Block templets" stopProcessing="true">
 
<match url="^templets/(.*).php$" />
 
<conditions logicalGrouping="MatchAny">
 
<add input="{USER_AGENT}" pattern="templets" />
 
<add input="{REMOTE_ADDR}" pattern="" />
 
</conditions>
 
<action type="AbortRequest" />
 
</rule>
 
<rule name="Block SomeRobot" stopProcessing="true">
 
<match url="^uploads/(.*).php$" />
 
<conditions logicalGrouping="MatchAny">
 
<add input="{USER_AGENT}" pattern="SomeRobot" />
 
<add input="{REMOTE_ADDR}" pattern="" />
 
</conditions>
 
<action type="AbortRequest" />
 
</rule>
 
 
 
Nginx下禁止指定目录运行PHP脚本
 
注意:这段配置文件一定要放在 location ~ .php(.*)$ 的前面才可以生效,配置完后记得重启Nginx生效。
 
location ~* /(a|data|templets|uploads)/(.*).(php)$ {
 
return 403;
 
}
 
 
 
验证是否生效
 
用 Noptepad++ 或者 Sublime Text 或者 Dreamweaver 新建一个php文件,名为t.php,里面随便打几个字即可
 
上传到你网站的 uploads 文件夹里,然后在浏览器上打开 http://域名/uploads/t.php
 
 
如果是能正常显示你写的字,那表示没生效,有风险,想办法让它生效吧。