Как удалить заголовок "X-Runtime" из Nginx/Passenger?

редактировать -- решение, которое я опубликовал ниже, вероятно, применяется к любому серверу (Nginx/Apache/anything else), потому что этот заголовок установлен в Rails.


кто-нибудь знает, где заголовок "X-Runtime" может быть удален в Nginx & Passenger?

Я захватил исходные файлы и еще ничего не нашел, но я хотел бы избавиться от него для безопасности, так как это признак Rails.

5 ответов


оказалось, что он не был установлен ни в Nginx, ни в пассажирском.

Это в бенчмаркинг.rb in / gems / actionpack-2.3.2 / lib/ action_controller/, строка 90.


Я знаю, что это старый вопрос, но поскольку проблема все еще существует, и многие сайты по-прежнему выставляют его версию passenger и nginx, я даю ответ, который очень хорошо работает для меня. То же самое решение применяется к заголовку X-Runtime.

просто установите 3rd party ngx_headers_more:http://github.com/agentzh/headers-more-nginx-module (Вы должны перестроить его из источника). Добавьте в свою конфигурацию (я создал /etc/nginx / conf.д/безопасность.conf для его): server_tokens от; more_clear_headers 'Server' 'X-Powered-By ''X-Runtime';


в Apache вы можете использовать mod_headers и чтобы удалить любой заголовок из ответа (или запроса на этот счет).

для удаления заголовков необходимо включить модуль:

# a2enmod headers

затем вы можете использовать параметр unset для директивы заголовка, чтобы отменить их:

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

эта директива может использоваться как на глобальном уровне, и для одного виртуального сервера


для тех, кто все еще натыкается на это, я считаю, что самый простой и правильный способ сделать это в config/application.rb, добавив следующее:

config.middleware.delete(Rack::Runtime)

все остальные методы, похоже, не столько отключают заголовок, сколько фильтруют его от вывода. Это для rails4, не уверен, что это относится к другим версиям.

обновление:

следующий код в файле инициализатора может быть более надежным, поскольку существует Rack:: Runtime промежуточное ПО может быть принято некоторыми другими компонентами.

Rails.application.config.middleware.delete(Rack::Runtime)

следующее для Apache. Я неправильно понял вопрос. :)

включить модуль заголовки, mod_headers, и добавьте следующее В конфигурацию Apache

Header always unset "X-Runtime"

вы, вероятно, также захотите удалить X-Powered-By заголовок, поэтому добавьте следующее.

Header always unset "X-Powered-By"