Я не смог найти способ отключить заголовок Passenger X-Powered-By
:
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11
Возможно ли это сделать без изменения его источников и удаления заголовков на уровне HTTP-сервера?
Я не смог найти способ отключить заголовок Passenger X-Powered-By
:
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11
Возможно ли это сделать без изменения его источников и удаления заголовков на уровне HTTP-сервера?
У пассажира нет опции настройки для отключения X-Powered-by, поэтому вам нужно сделать один из
#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
В 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
Короткий ответ: ДА.
Я оставляю факт, что я использую 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, которую я могу сделать.
more_clear_headers 'Server' 'X-Powered-By' 'X-Runtime';
работает для меня, как указано в http://www.michaelrigart.be/en/blog/nginx-and-passenger-install-in-production-environment.html.
Чтобы полностью удалить заголовки 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