2012-06-19 72 views
13

我能够重新命名的org.apache.coyote.http11.Http11Protocol.SERVER到别的值,所以HTTP的响应头包含如下:删除服务器头的tomcat

服务器:Apache

,而不是默认

服务器:Apache-狼/ 1.1

使用的org.apache.coyote.http11.Http11Protocol.SERVER一个空值不会删除服务器头。

如何从我的共鸣中删除服务器标题?

回答

3

简短的回答 - 你不能删除标题,但你应该修改它(见其他答案)。

服务器头在RFC中定义,它是强制性的。 (在spec没有被定义为可选)

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.38

14.38服务器
服务器响应报头字段包含关于所使用的原始服务器以处理请求的软件信息两者。
该字段可以包含标识服务器和任何重要子产品的多个产品标记(3.8节)和 注释。 产品标记以 标识应用程序的重要性顺序列出。

如果通过代理转发响应,则代理应用程序不得修改服务器响应标头。相反,它应该包含Via字段(如第14.45节中的 所述)。

Note: Revealing the specific software version of the server might 
    allow the server machine to become more vulnerable to attacks 
    against software that is known to contain security holes. Server 
    implementors are encouraged to make this field a configurable 
    option. 
+6

修改或删除服务器标头(以及X-Powered-By等其他设备)对于安全性非常重要。通过向外部用户提供有关您的底层技术基础架构的信息,您基本上告诉潜在的攻击者利用他们应该利用的攻击。与其他包含不同的是,tomcat不会让你删除标题,但你可以修改它为任何你想要的。 server.xml中的'。另请参阅:[Tomcat文档](https://tomcat.apache.org/tomcat-4.1-doc/config/coyote.html) –

+0

@Tomcat正好 – momomo

5

它应该是可能的,因为Tomcat的5.5。看看这个讨论:https://mail-archives.apache.org/mod_mbox/tomcat-users/200508.mbox/%[email protected]%3E 与此链接: https://tomcat.apache.org/tomcat-4.1-doc/config/coyote.html

因此以下应在服务器头设置为TEST。空应该让它变空。

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8180" inProcessors="5" maxProcessors="75" enableLookups="true" acceptCount="10" debug="0" connectionTimeout="20000" useURIValidationHack="false" server="TEST"/> 

将服务器标头设置为Apache应该在大多数情况下安全性足够好。正因为如此,我们不可能推断出哪个操作系统,哪个模块和哪个版本的模块运行的确切版本。

+2

我看不到您提供的链接如何帮助删除服务器标题 – RonK

+1

不错的解决方案,适用于tomcat 8 – 2014-08-30 18:56:48

+0

-1这不回答这个问题。 OP已经知道如何更改服务器标题;他们想知道的是,是否有可能*删除它。 –

3

您可以修改您的tomcat server.xml并添加一个“服务器”选项并将其设置为任何您想要的。服务器选项应该为您正在运行的任何http或ssl连接器设置。例如,下面是示例server.xml文件中的示例HTTP连接器配置

<Connector port="8080" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" enableLookups="false" xpoweredby="false" server="Web"/>