关于CVE-2025-24813适配Spring Boot嵌入式Tomcat及默认配置的技术问询
CVE-2025-24813:Spring Boot嵌入式Tomcat相关配置项说明
1. Partial PUT Requests
- 默认状态:启用。Tomcat默认允许客户端发送带
Range头的部分PUT请求。 - 禁用方式:
自定义Tomcat连接器配置,关闭部分PUT支持:@Configuration public class TomcatCustomConfig { @Bean public TomcatServletWebServerFactory tomcatServerFactory() { return new TomcatServletWebServerFactory() { @Override protected void customizeConnector(Connector connector) { super.customizeConnector(connector); Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler(); protocol.setAllowPartialPut(false); } }; } }
2. Writes enabled for the default servlet
- 默认状态:禁用。Tomcat的
DefaultServlet默认设置readonly=true,拒绝PUT、DELETE等写入类请求。 - 加固配置(确保禁用):
在application.properties里显式声明:
或者通过代码注册DefaultServlet时强制设置只读:server.servlet.default-servlet.read-only=true@Configuration public class DefaultServletSetup { @Bean public ServletRegistrationBean<DefaultServlet> defaultServletRegistration() { DefaultServlet defaultServlet = new DefaultServlet(); ServletRegistrationBean<DefaultServlet> regBean = new ServletRegistrationBean<>(defaultServlet, "/"); regBean.addInitParameter("readonly", "true"); return regBean; } }
3. DefaultServlet
- 默认状态:启用。Spring Boot嵌入式Tomcat会自动注册
DefaultServlet,用来处理静态资源(比如/static、/public目录下的文件)请求。 - 禁用方式:
如果你的应用不需要静态资源支持,直接关闭默认资源映射:
在application.properties中添加:
或者通过WebMvc配置移除资源映射:spring.web.resources.add-mappings=false@Configuration public class WebMvcCustomConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 不配置任何资源映射,DefaultServlet就不会处理静态资源请求 } }
内容的提问来源于stack exchange,提问作者Ajay Yadav
相关产品推荐
相关产品推荐

