我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

一、背景

服务器经常被人黑。webapps下时常莫名其妙的多了一个未知的恶意war文件。对此的反应:

1、修改tomcat虚拟路径。

2、定时检测webapps和work文件夹下的文件,删除不知名的文件。

二、tomcat的server.xml

在C盘下新建webApp和、webWork两个文件夹,将server.xml中的host节点修改为:

 

      <Host name="localhost"
            appBase="C:/webApp/"
            workDir="C:/webWork/"
            unpackWARs="true" autoDeploy="true">
三、新建一个listener。

 

1、ProtectTaskListener.java

 

package com.px.listener;

import com.px.util.Config;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

/**
 * 文件检测监听器
 * 
 * @author liyulin lyl010991@126.com
 * @version 1.0 2015-04-13
 */
public class ProtectTaskListener implements ServletContextListener {
    private Timer timer;

    public void contextInitialized(ServletContextEvent event) {
        timer = new Timer();
        timer.schedule(
                new TimerTask() {
                    public void run() {
                        ProtectUtil.deleteOtherFile();
                    }
                }, Config.CHECK_TIME);
    }

    public void contextDestroyed(ServletContextEvent event) {
        timer.cancel();
    }

}


 

2、ProtectUtil.java

 

package com.px.listener;

import java.io.File;

/**
 * 删除webApp和webWork下的(除了hospital1、installer、jswork、reports)其它文件
 * 
 * @author liyulin lyl010991@126.com
 * @version 1.0 2015-04-13
 */
public class ProtectUtil {

    public static final String WEBAPPS_PATH = "C:/webApp";
    public static final String WORK_PATH = "C:/webWork";
    public static final String[] WORK_FILE_PATH = new String[]{
        "hospital1",
        "installer",
        "jswork",
        "reports"
    };

    public static void deleteOtherFile() {
        deleteWebAppsOtherFile();
        deleteWorkOtherFile();
    }

    /**
     * 删除webapps下除了hospital1的其它所有文件
     */
    public static void deleteWebAppsOtherFile() {
        File file = new File(WEBAPPS_PATH);
        if (file.exists()) {
            File[] fileLists = file.listFiles();
            for (File f : fileLists) {
                if (!f.getName().equals("hospital1")) {
                    delFileOrDerectory(f);
                }
            }
        }
    }

    /**
     * 删除work下除了"hospital1"、"installer"、"jswork"、"reports"的所有文件
     */
    public static void deleteWorkOtherFile() {
        File file = new File(WORK_PATH);
        if (file.exists()) {
            File[] fileLists = file.listFiles();
            for (File f : fileLists) {
                boolean isDelete = true;// 删除文件标志。true:删除
                for (String workFile : WORK_FILE_PATH) {
                    if (f.getName().equals(workFile)) {
                        isDelete = false;
                        break;
                    }
                }
                if (isDelete) {
                    delFileOrDerectory(f);
                }
            }
        }
    }

    /**
     * 删除文件夹、文件
     *
     * @param file 待删除文件、文件夹
     */
    private static void delFileOrDerectory(File file) {
        if (file.exists()) {
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                for (File subFile : files) {
                    delFileOrDerectory(subFile);
                }
                file.delete();
            } else {
                file.delete();
            }
        }
    }
}

 

四、修改web.xml

在web-app节点下添加:

 

    <listener>
        <listener-class>
            com.px.listener.ProtectTaskListener
        </listener-class>
    </listener>

 

我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为1000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版百度优化、名注册、主机空间、手机网站建设公众号开发小程序制作、网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线: 13820372851,我们会详细为你一一解答你心中的疑难。项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13820372851

上班时间

周一到周五

公司电话

022-26262675

二维码
线
在线留言