Java Spring应用路径型漏洞修复方案咨询(基于Qualys扫描报告)
修复Java Spring应用路径型漏洞(WASC-15/16/17)的具体方案
针对你提到的Qualys扫描出的Java Spring应用的三个路径相关漏洞——WASC-15(应用配置错误)、WASC-16(目录索引)、WASC-17(文件系统权限不当),结合扫描给出的CVSS评分(基础2.1、时间1.9)和潜在风险,我整理了一套针对性的修复措施,帮你彻底解决这些问题:
一、修复WASC-15:应用配置错误
- 先检查你的
application.properties或application.yml配置文件,排查是否有过度开放的资源访问规则——比如是不是把Spring MVC的静态资源映射设成了/**,这会导致所有路径都被当作静态资源访问,很容易暴露敏感目录。正确的做法是限定到具体的静态资源目录,比如:spring.mvc.static-path-pattern=/static/** - 务必关闭Spring Boot的
debug和trace模式,这俩模式会泄露大量应用内部配置细节,完全没必要在生产环境开启:debug=false trace=false - 验证Spring Security的拦截规则,确保
/WEB-INF/、配置文件存放目录这类敏感路径没有被误设为可公开访问。
二、修复WASC-16:目录索引
- 首先禁用Web服务器的目录列表功能:
- 如果用的是Spring Boot内嵌Tomcat,直接加一行配置就能搞定:
server.tomcat.dir-enabled=false - 要是部署在独立的Tomcat或Jetty上,去修改对应的服务器配置文件(比如Tomcat的
context.xml),把listings属性设为false。
- 如果用的是Spring Boot内嵌Tomcat,直接加一行配置就能搞定:
- 在应用的每个目录下都放一个自定义的
index.html或index.jsp,这样就算用户访问目录路径,也只会看到你指定的页面,不会展示目录里的文件列表。 - 还可以通过Spring Security直接拦截空目录的访问请求,比如在配置类里加这么一段:
@Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/**/").denyAll(); // 禁止访问所有以/结尾的目录路径 }
三、修复WASC-17:文件系统权限不当
- 调整应用运行用户的权限:绝对不要用
root或管理员身份跑Spring应用,给运行用户分配最小必要权限——比如只能访问应用部署目录、临时文件目录,禁止碰系统级的敏感目录(像/etc/、用户主目录)。 - 给敏感文件(比如配置文件、密钥文件)设置严格的权限:在Linux系统下,你可以用这两条命令把权限锁死,只有应用用户能读写:
chmod 600 application.properties chown appuser:appgroup application.properties - 检查应用里的文件操作逻辑,确保所有文件读写操作都是用运行用户的权限执行的,不要硬编码高权限用户去操作文件。
关于威胁与影响的补充
扫描报告提到的“Web服务器上发现潜在敏感文件、目录或目录列表”的威胁,以及“可能泄露敏感信息”的影响,上面的措施正是从配置收紧、访问拦截、权限加固三个核心方向来阻断风险的,确保敏感内容不会被未授权访问。
修复完成后,记得重新跑一遍Qualys扫描验证漏洞是否已消除,另外建议定期审计应用配置和文件权限,避免后续部署或配置变更时再次踩坑。
内容的提问来源于stack exchange,提问作者Santosh Vastrad
相关产品推荐
相关产品推荐

