EDIT - 下面發佈的解決方案可能適用於任何服務器(Nginx/Apache /其他),因爲這個頭文件是在Rails中設置的。如何從Nginx/Passenger中刪除「X-Runtime」頭文件?
任何人都知道的 「X-運行」 頭可在Nginx的&乘客被刪除?
我已經grep的源文件,還沒有發現任何東西,但我想擺脫它的安全性,因爲它是一個Rails的跡象。
EDIT - 下面發佈的解決方案可能適用於任何服務器(Nginx/Apache /其他),因爲這個頭文件是在Rails中設置的。如何從Nginx/Passenger中刪除「X-Runtime」頭文件?
任何人都知道的 「X-運行」 頭可在Nginx的&乘客被刪除?
我已經grep的源文件,還沒有發現任何東西,但我想擺脫它的安全性,因爲它是一個Rails的跡象。
原來,它並未在Nginx或Passenger中設置。
這是在/gems/actionpack-2.3.2/lib/action_controller/ benchmarking.rb,線90
以下是針對Apache的。我沒有正確地閱讀這個問題。 :)
啓用頭模塊,mod_headers
,並添加以下到Apache的配置
Header always unset "X-Runtime"
您也可能要刪除的X-Powered-By
頭所以添加以下了。
Header always unset "X-Powered-By"
這實際上是Nginx而不是Apache - 謝謝:) – fig 2009-06-12 01:46:30
在Apache中可以使用mod_headers以除去從響應任何報頭(或對於該請求物)。
要刪除您需要啓用該模塊的標題:
# a2enmod headers
然後你可以使用未設置選項FO的頭指令來取消他們:
Header unset X-Runtime
Header unset X-Powered-By
這個指令可以既使用在全球一級和單一的虛擬服務器
我知道這是一個古老的問題,但因爲問題仍然存在,許多網站仍然暴露它的乘客和nginx我給出的版本對我來說效果很好。同樣的解決方案適用於X-Runtime頭。
只需安裝第三方ngx_headers_more:http://github.com/agentzh/headers-more-nginx-module(您必須從源重建它)。添加到你的配置(我爲它創建了/etc/nginx/conf.d/security.conf): server_tokens off; more_clear_headers'Server''X-Powered-By''X-Runtime';
對於任何人誰是在這仍然磕磕絆絆,我認爲這樣做是在配置/ application.rb中,通過添加以下最簡單,最正確的方法:
config.middleware.delete(Rack::Runtime)
所有其他方法似乎與其從輸出中過濾掉頭部不如說關閉頭部。這是爲rails4,不知道它是否適用於其他版本。
更新:
在初始化文件下面的代碼可能會更穩健的機架::運行中間件的存在,可能通過一些其他組件來承擔。
Rails.application.config.middleware.delete(Rack::Runtime)
我很確定X運行時不是由nginx設置的。我建議你檢查一下乘客的來源。 – 2009-06-12 02:36:11
在問這個問題之前,我同時對兩個來源進行了處理,但沒有看到任何內容。 – fig 2009-06-12 03:01:42