8

編集- 以下に投稿した解決策は、おそらくどのサーバー (Nginx/Apache/その他) にも適用されます。これは、このヘッダーが Rails 自体に設定されているためです。


NginxとPassengerで「X-Runtime」ヘッダーを削除できる場所を知っている人はいますか?

ソース ファイルを grep しましたが、まだ何も見つかりませんでしたが、Rails の明らかな兆候であるため、セキュリティのために削除したいと思います。

4

5 に答える 5

9

まだこれにつまずいている人にとって、最も簡単で最も正しい方法は config/application.rb に以下を追加することだと思います:

config.middleware.delete(Rack::Runtime)

他のすべての方法は、ヘッダーを無効にするほどではなく、出力からフィルター処理するようです。これはrails4用で、他のバージョンに当てはまるかどうかはわかりません。

アップデート:

Rack::Runtime ミドルウェアの存在が他のコンポーネントによって想定される可能性があるため、初期化ファイル内の次のコードはより堅牢になる可能性があります。

Rails.application.config.middleware.delete(Rack::Runtime)
于 2014-01-14T04:57:11.830 に答える
7

NginxでもPassengerでも設定されていないことが判明しました。

/gems/actionpack-2.3.2/lib/action_controller/、90行目のbenchmarking.rbにあります。

于 2009-06-12T10:40:32.520 に答える
5

ちょっと古い質問だと思いますが、問題がまだ存在し、多くのサイトでまだパッセンジャーと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-ランタイム';

于 2010-09-08T09:39:10.150 に答える
3

Apache では、mod_headersを使用して、応答 (またはその要求) からヘッダーを削除できます。

ヘッダーを削除するには、モジュールを有効にする必要があります。

# a2enmod headers

次に、Header ディレクティブの unset オプションを使用して、それらを設定解除できます。

Header unset X-Runtime
Header unset X-Powered-By

このディレクティブは、グローバル レベルと単一の仮想サーバーの両方で使用できます。

于 2009-06-13T19:19:46.163 に答える
2

以下は Apache の場合です。質問を正しく読みませんでした。:)

ヘッダー モジュールを有効にし、mod_headersApache の構成に以下を追加します。

Header always unset "X-Runtime"

X-Powered-Byおそらくヘッダーも削除したいので、以下も追加してください。

Header always unset "X-Powered-By"
于 2009-06-12T01:39:57.157 に答える