Стандартный способ отключить заголовок X-powered by by Passenger?

Я не смог найти способ отключить заголовок Passenger X-Powered-By:

X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11

Возможно ли это сделать без изменения его источников и удаления заголовков на уровне HTTP-сервера?

Ответ 1

Короткий ответ: нет

У пассажира нет опции настройки для отключения X-Powered-by, поэтому вам нужно сделать один из

  • фильтр
  • изменить источник
  • monkeypatch

код пассажира:

  #RequestHandler::process_request
  headers_output = [
    STATUS, status.to_i.to_s, CRLF,
    X_POWERED_BY, @passenger_header, CRLF
  ]

  #AbstractRequestHandler::initialize
  @passenger_header   = determine_passenger_header

  #AbstractRequestHandler::determine_passenger_header
  def determine_passenger_header
    header = "Phusion Passenger (mod_rails/mod_rack)"
    if @options["show_version_in_header"]
      header << " #{VERSION_STRING}"
    end
    if File.exist?("#{SOURCE_ROOT}/enterprisey.txt") ||
       File.exist?("/etc/passenger_enterprisey.txt")
      header << ", Enterprise Edition"
    end
    return header
  end

Ответ 2

В Apache вы можете отключить заголовки:

# Hide/Remove the Passenger Headers
Header always unset "X-Powered-By"
Header always unset "X-Runtime"

Он не удалит все имена (поскольку такие сервисы, как Plesk, все равно добавят их имя), но Пассажир может быть удален таким образом.

Престижность Джону Трупиано: https://groups.google.com/forum/?fromgroups=#!topic/phusion-passenger/LKAKH0PEyW0

Ответ 3

Короткий ответ: ДА.

Я оставляю факт, что я использую nginx + пассажир.. но вы можете полностью удалить их с помощью

remove_header X-Header-Name-To-Remove;

Таким образом, вы можете удалить и

server {
    ...
    remove_header X-Powered-By;
    remove_header X-Runtime;
    ...
    }

Это удаляет все заголовки, также может быть в директиве location вместо сервера.

..

Вот мои общие директивы, поскольку я оставляю "apache prod" equiv на моем.

server {
    ...
    remove_header X-Runtime;
    server_tokens off;
    passenger_show_version_in_header off;
    ...
}

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

Server:nginx + Phusion Passenger
X-Powered-By:Phusion Passenger       

Это ближайший эквивалент директивы apache2 ServerTokens Prod, которую я могу сделать.

Ответ 5

Чтобы полностью удалить заголовки X-Powered-By и Server от Nginx + Passenger, а не просто скрыть версии, добавьте это в свой блок http в nginx.conf:

server_tokens off;
more_clear_headers Server;
more_clear_headers X-Powered-By;

Вы также можете установить свой собственный:

more_set_headers "Server: ACME";

Это будет работать, даже если passenger_show_version_in_header off; не установлен, но может быть разумно добавить его также в случае.

Не забудьте перезапустить сервер, чтобы они повлияли. Вы должны проверить свою конфигурацию перед перезагрузкой: sudo nginx -t.

Информация через calvin.my