Как настроить Spring MVC для предотвращения "уязвимости на основе путей"

У меня есть приложение Spring MVC (5.0.8.RELEASE), и недавнее сканирование безопасности показывает, что оно имеет "Уязвимость на основе пути". Вот контроллер:

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

Для приведенного выше контроллера, вот действительный URL для моей страницы часто задаваемых вопросов:

http://example.com/faq

Однако, основываясь на проверке безопасности и на том, что я тестировал, работает следующий URL:

http://example.com/faq.anything

Как я могу настроить Spring MVC, чтобы сделать http://example.com/faq единственным действительным URL? (предположим, что я не использую @PathVariable)

1 ответ

Решение

Поскольку суффикс поддержки весны ".*" По умолчанию. / person также сопоставляется с /person.* /person.xml или /person.pdf или /person.any также сопоставляется. - Чтобы полностью отключить использование расширений файлов, вы должны установить оба из них:

.useSuffixPatternMatching (ложь)

.favorPathExtension (ложь)

https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html

Другие вопросы по тегам