Tomcat8解包战争总是删除我的SMlink文件



在tomcat中使用命令./startup.sh 时,删除了我的符号链接文件。

我该如何解决这个问题。

我不想通过 tomcat 删除我的符号链接文件。

以前的描述: 我的环境 [操作系统: Centos7, java: 1.8.0_131, 春季版本: 3.2.12.RELEASE]

  1. 安装并解压缩 Apache-Tomcat-8.5.15
  2. apache-tomcat-8.5.15/conf/server.xml中编辑<Host name="localhost" appBase="" unpackWars="true" autoDeply="true">
  3. 执行命令mkdir /home/data
  4. 执行命令ln -s /home/data apache-tomcat-8.5.15/uploadfilesln -s /home/data apache-tomcat-8.5.15/ROOT/uploadfiles
  5. /home/data apache-tomcat-8.5.15/ROOT/uploadfiles/home/data apache-tomcat-8.5.15/uploadfiles格式上传文件
  6. 执行命令./startup.sh
  7. 雄猫发生删除的文件在apache-tomcat-8.5.15/ROOT/uploadfiles

我想在符号链接中使用 img 文件,来自 img 标签路径。 但是当执行命令./startup.sh 我删除的img文件时。 下载servlet对我不擅长。

Tomcat正在做你告诉它做的事情:<Host ... unpackWars="true">意味着战争文件将被解压缩,Tomcat的webapps目录不应该被弄乱。

此外:在tomcat的webapps目录中拥有一个上传目录是非常糟糕的做法,因为您将面临远程代码执行漏洞。假设有人上传了一个 JSP 文件,然后请求它:它将在服务器端编译并以与 Tomcat 相同的权限执行。不是一个漂亮的结果。

出于备份目的,您可能正在链接此目录以将应用程序与上传的文件分开。无需将任何目录映射到 Web 应用目录。只需提供一个 DownloadServlet,从预配置的位置提供文件即可设置好。