2016-02-12 93 views
2

我在我的HTTP響應標頭中有「服務器:Apache」並且想要刪除它。 我跟着喜歡加入這說明httpd.conf中:無法刪除服務器:Apache標頭

ServerSignature Off 
ServerTokens Prod 
Header unset Server 

但最後有沒有效果。前兩行改變了頭文件的內容(之前它也包含了關於操作系統和PHP的信息),但是我需要完全刪除它。 如何做到這一點?

+0

你有'mod_headers'enabled?這對於取消設置標題字段是必要的。 – maxhb

+0

我確實。它已啓用並正常工作,但無法刪除此標頭 – Audiophile

+0

還行。剛剛用我自己的網絡服務器測試過它,它確實不適用於這一個標題字段:-( – maxhb

回答

9

阿帕奇不要讓你徹底取消設置此。實際上,有些開發人員強烈反對增加這一點,儘管它是一個簡單的代碼更改,幾次被建議(甚至寫入!)。只有一些討論提出並拒絕了這些討論,請參閱herehere

他們給各方面的原因,其中包括:

  1. 安全通過隱藏的是一個神話,並給出了安全的錯覺,因爲它很容易指紋服務器,看看哪些軟件很可能是基於關於它如何迴應某些要求。雖然有一個真相的說法,指定ServerTokens爲默認爲完全肯定是一個安全問題,泄漏太多信息應該在默認情況下顯示在公共網站上。

  2. 它可能會或可能不會違反HTTP規範不提供服務器頭。這似乎是在一些爭議中,仍然沒有回答爲什麼他們不允許你將它改爲隨機字符串而不是Apache。

  3. 這可能使得更難計數Apache安裝的數量。如果它容易指紋和反思自我的原因,這違背了上面的論點1。

  4. 這使得調試問題變得困難,如果指紋非常容易,並且您認爲任何需要調試的人都知道或能夠找出確切版本,這些問題再次違背上面的參數1。

  5. 如果代理服務器知道另一端的服務器類型,它可能會以不同方式處理請求。代理服務器恕我直言,這是錯誤的,我懷疑它已經做了很多了。

  6. 如果人們真的想要修改或隱藏這個頭文件,他們可以編輯源代碼。坦率地說,這是一個危險的建議,建議沒有經驗的代碼的人去做,如果他們從非打包的版本運行,可能會導致其他安全問題,只是爲了增加這一點。

他們甚至竟把在official documentation添加此:

設置ServerTokens小於最小不建議,因爲它 使得它更難以調試interoperational問題。另外 請注意,禁用服務器:標頭根本不會使 服務器更安全。 「通過默默無聞的安全」的想法是一個神話,並導致錯誤的安全感。

整個情況是,恕我直言,荒謬,他們應該改變立場,讓人們配置軟件,因爲他們想要的。在更糟糕的情況下,它不會像他們說的那樣添加任何內容,並且它會停止整個問題每隔一段時間就會被提出,儘管我個人認爲您發佈的不必要的信息越少越好,所以希望能夠關閉它。

在此之前,不可能掉頭,你留下了:

  1. 將它設置爲最小 - 這大概夠
  2. 好的編輯源代碼 - 這是矯枉過正除了最偏執
  3. 安裝ModSecurity - 哪個(至少可以)允許你覆蓋(但不能刪除)這個頭到你想要隱藏的服務器軟件。可能矯枉過正只是爲了安裝它,儘管WAF還有其他好處。
  4. Proxy Apache在另一個Web服務器之後,允許您更改此字段。
  5. 切換到另一個Web服務器。

Rant over。

-2

您可能還沒有啓用mod_headers

檢查它是否是啓用:

[email protected]: a2query -m headers 

如果mod headers啓用輸出應該是這樣的headers (enabled by ...)

如果它不能夠通過使用激活模塊:

a2enmod headers 
+0

它啓用,我可以通過htaccess添加其他標題,但不能刪除這一個 – Audiophile