ruby - significado - forma estándar de desactivar el encabezado X-powered-by en Passenger?
powered by significado (5)
Respuesta corta: no.
No hay una opción de configuración en el pasajero para deshabilitar el X-Powered-by, por lo que debe hacer una de
- filtrar
- editar fuente
- monkeypatch
código de pasajero:
#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
No pude encontrar ninguna forma de desactivar el encabezado X-Powered-By
Passenger:
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11
¿Es posible hacer eso sin modificar sus fuentes y eliminar los encabezados en el nivel del servidor HTTP ?
En Apache puedes desarmar los encabezados:
# Hide/Remove the Passenger Headers
Header always unset "X-Powered-By"
Header always unset "X-Runtime"
No eliminará todos los nombres (ya que los servicios como Plesk seguirán adjuntando su nombre), pero Passenger se puede eliminar de esta manera.
Felicitaciones a John Trupiano: https://groups.google.com/forum/?fromgroups=#!topic/phusion-passenger/LKAKH0PEyW0
Respuesta corta: SÍ .
Dejo el hecho de que uso nginx + pasajero ... pero puedes eliminarlos por completo con
remove_header X-Header-Name-To-Remove;
Entonces puedes eliminar ambos por
server {
...
remove_header X-Powered-By;
remove_header X-Runtime;
...
}
Esto elimina todos los encabezados, también puede estar en una directiva de ubicación en lugar de servidor.
..
Aquí están mis directivas comunes, ya que dejo el equivalente de ''apache prod'' en el mío.
server {
...
remove_header X-Runtime;
server_tokens off;
passenger_show_version_in_header off;
...
}
Proporciona un encabezado de servicio como ...
Server:nginx + Phusion Passenger
X-Powered-By:Phusion Passenger
Este es el equivalente más aproximado de la directiva Apache2 ServerTokens Prod que puedo hacer.
more_clear_headers ''Server'' ''X-Powered-By'' ''X-Runtime'';
funciona para mí como se menciona en http://www.michaelrigart.be/en/blog/nginx-and-passenger-install-in-production-environment.html .
Para eliminar por completo los encabezados X-Powered-By
y Server
de Nginx + Passenger y no solo esconder versiones, nginx.conf
a tu bloque http
en nginx.conf
:
server_tokens off;
more_clear_headers Server;
more_clear_headers X-Powered-By;
También puede configurar uno propio:
more_set_headers "Server: ACME";
Esto funcionará incluso si passenger_show_version_in_header off;
no está configurado, pero podría ser inteligente agregarlo también en caso.
Recuerde reiniciar el servidor para que estos entren en vigencia. Sin embargo, debes probar tu configuración antes de reiniciar: sudo nginx -t
.
Información a través de calvin.my