編集- 以下に投稿した解決策は、おそらくどのサーバー (Nginx/Apache/その他) にも適用されます。これは、このヘッダーが Rails 自体に設定されているためです。
NginxとPassengerで「X-Runtime」ヘッダーを削除できる場所を知っている人はいますか?
ソース ファイルを grep しましたが、まだ何も見つかりませんでしたが、Rails の明らかな兆候であるため、セキュリティのために削除したいと思います。
編集- 以下に投稿した解決策は、おそらくどのサーバー (Nginx/Apache/その他) にも適用されます。これは、このヘッダーが Rails 自体に設定されているためです。
NginxとPassengerで「X-Runtime」ヘッダーを削除できる場所を知っている人はいますか?
ソース ファイルを grep しましたが、まだ何も見つかりませんでしたが、Rails の明らかな兆候であるため、セキュリティのために削除したいと思います。
まだこれにつまずいている人にとって、最も簡単で最も正しい方法は config/application.rb に以下を追加することだと思います:
config.middleware.delete(Rack::Runtime)
他のすべての方法は、ヘッダーを無効にするほどではなく、出力からフィルター処理するようです。これはrails4用で、他のバージョンに当てはまるかどうかはわかりません。
アップデート:
Rack::Runtime ミドルウェアの存在が他のコンポーネントによって想定される可能性があるため、初期化ファイル内の次のコードはより堅牢になる可能性があります。
Rails.application.config.middleware.delete(Rack::Runtime)
NginxでもPassengerでも設定されていないことが判明しました。
/gems/actionpack-2.3.2/lib/action_controller/、90行目のbenchmarking.rbにあります。
ちょっと古い質問だと思いますが、問題がまだ存在し、多くのサイトでまだパッセンジャーと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 'サーバー' 'X-Powered-By' 'X-ランタイム';
Apache では、mod_headersを使用して、応答 (またはその要求) からヘッダーを削除できます。
ヘッダーを削除するには、モジュールを有効にする必要があります。
# a2enmod headers
次に、Header ディレクティブの unset オプションを使用して、それらを設定解除できます。
Header unset X-Runtime
Header unset X-Powered-By
このディレクティブは、グローバル レベルと単一の仮想サーバーの両方で使用できます。
以下は Apache の場合です。質問を正しく読みませんでした。:)
ヘッダー モジュールを有効にし、mod_headersApache の構成に以下を追加します。
Header always unset "X-Runtime"
X-Powered-Byおそらくヘッダーも削除したいので、以下も追加してください。
Header always unset "X-Powered-By"