2012-06-19 98 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"/>