2009-06-12 19 views
8

EDIT - la solución que publiqué a continuación probablemente se aplique a cualquier servidor (Nginx/Apache/cualquier otra cosa), porque este encabezado está configurado en Rails.¿Cómo eliminar el encabezado "X-Runtime" de Nginx/Passenger?


Alguien sabe donde la "X-Runtime" de cabecera se puede quitar en Nginx & de pasajeros?

He agrupado los archivos de origen y todavía no he encontrado nada, pero me gustaría deshacerme de él por seguridad ya que es un signo revelador de Rails.

+0

Estoy bastante seguro de que X-Runtime no está configurado por nginx. Te sugiero que revises las fuentes de Pasajeros. –

+0

Agrupe ambas fuentes antes de hacer la pregunta, pero no vi nada en ninguna de las dos. – fig

Respuesta

7

Resultó que no estaba configurado ni en Nginx ni en Pasajero.

Está en benchmarking.rb en /gems/actionpack-2.3.2/lib/action_controller/, línea 90.

1

Lo siguiente es para Apache. No leí la pregunta correctamente. :)

habilitar el módulo de cabeceras, mod_headers, y añadir lo siguiente a la configuración de Apache

Header always unset "X-Runtime" 

Es probable que también desee quitar el encabezado X-Powered-By por lo que añadir el siguiente también.

Header always unset "X-Powered-By" 
+0

Esto es en realidad Nginx en lugar de Apache - gracias :) – fig

+0

Ah, ¡Ups! :) Mi error. – toholio

3

En Apache puede utilizar mod_headers para eliminar cualquier cabecera de la respuesta (o la solicitud de que se importar).

Para eliminar los encabezados que necesita para activar el módulo:

# a2enmod headers 

continuación, puede utilizar la opción desactivada fo la directiva de cabecera a desactívala:

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

Esta directiva puede ser utilizado tanto a nivel global y para el servidor virtual único

5

Sé que es una pregunta un poco vieja, pero porque el problema todavía existe y muchos sitios aún exponen su pasajero y nginx la versión doy la respuesta que funciona muy bien para mí. La misma solución se aplica al encabezado de X-Runtime.

Simplemente instale el tercero ngx_headers_more: http://github.com/agentzh/headers-more-nginx-module (debe reconstruirlo desde el origen). Agregue a su configuración (creé /etc/nginx/conf.d/security.conf para ello): server_tokens off; more_clear_headers 'Servidor' 'X-Powered-By' 'X-Runtime';

3

Para cualquier persona que sigue tropezando en esto, creo que la forma más sencilla y correcta de hacerlo es en config/application.rb, añadiendo lo siguiente:

config.middleware.delete(Rack::Runtime) 

Todos los otros métodos parecen no tanto deshabilitar el encabezado como filtrarlo de la salida. Esto es para rails4, no estoy seguro de si se aplica a otras versiones.

Actualización:

El siguiente código en un fichero de inicialización puede ser más robusta como la existencia de Rack middleware :: Tiempo de ejecución podría ser asumida por algunos otros componentes.

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

Esto me dio este error: '' 'Salir /Users/ryan/.rvm/gems/[email protected]/gems/actionpack-4.1.5/lib/action_dispatch/middleware/stack.rb:125: en 'assert_index ': Ningún middleware para insertar antes:" Rack :: Runtime "(RuntimeError)' '' en Rails 4.1.5 – ethicalhack3r

+0

Quizás haya algún código que intente insertar algo antes de Rack :: Runtime y asume que está en el lista de middleware. Puede probar este lugar en un fichero de inicialización, que debe dejar de lado el problema: 'Rails.application.config.middleware.delete (Rack :: Runtime)' – petercai

+0

que funcionaba, gracias! :) – ethicalhack3r

Cuestiones relacionadas