如何配置Spring MVC来防止“基于路径的漏洞”

时间:2018-09-22 14:23:56

标签: spring spring-mvc spring-boot

我有一个Spring MVC(5.0.8.RELEASE)应用程序,最近的安全扫描表明它具有“基于路径的漏洞”。这是控制器:

@RequestMapping(value = "/faq", method = RequestMethod.GET)
public String faq(HttpServletRequest request) {
    return "faq";
}

对于上述控制器,这是我的“常见问题”页面的有效网址:

http://example.com/faq

但是,基于安全性扫描和我测试的结果,以下网址也可以使用:

http://example.com/faq.anything

如何配置Spring MVC使{{​​3}}成为唯一有效的URL? (假设我不使用@PathVariable)

1 个答案:

答案 0 :(得分:1)

因为默认为spring支持后缀“。*”。 / person也映射到/person。* /person.xml或/person.pdf或/person.any也已映射。 -要完全禁用文件扩展名,您必须同时设置以下两项:

.useSuffixPatternMatching(false)

.favorPathExtension(false)

https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-requestmapping-suffix-pattern-match