默认情况下,嵌入式Tomcat的Spring Boot应用程序的HTTP“server”标头是:
Server → Apache-Coyote/1.1
如何在 Spring Boot 中实现另一个(自定义)"server"标头?
对于Tomcat本身,可以通过 server
属性在XML中的 <Connector>
元素进行配置:
来自https://tomcat.apache.org/tomcat-8.0-doc/security-howto.html#Connectors:
server属性控制Server HTTP标头的值 . Tomcat 4.1.x到8.0.x的此标头的默认值是Apache-Coyote / 1.1 . 此标头可以向合法客户端和攻击者提供有限的信息 .
但是攻击者仍然会知道这是一个Tomcat服务器 .
4 回答
您可以使用安全配置中的StaticHeadersWriter设置custom headers,这是一个Java配置示例:
您可以使用自定义Filter实现添加其他标头(或覆盖现有标头) . 例如:
仅供参考,在最新版本的Spring Boot中,您可以简单地设置“server.server-header”属性来实现相同的功能 .
如果您不使用Spring Security,则可以使用TomcatEmbeddedServletContainerFactory并添加TomcatConnectorCustomizer: