Estoy ejecutando un servidor en nodejs con express. Parece que no puedo deshacerme del encabezado:
X-Powered-By:Express
Me preguntaba si hay alguna forma de deshacerme de este encabezado o si tengo que vivir con él.
javascript
node.js
express
http-headers
webserver
Tyronegcarter
fuente
fuente
Respuestas:
En Express> = 3.0.0rc5:
Aquí hay un middleware simple que elimina el encabezado en versiones anteriores de Express:
fuente
app.use(app.router);
para que funcione.4.15.2
. La solución @harrisunderwork usandoapp.set()
hizo el truco.Solo para aprovechar la respuesta de rjack, también podría (opcionalmente) simplemente cambiar (configurar) el encabezado X-powered-by a algo mucho más genial / personalizado como este:
fuente
A partir de Express v3.0.0rc5, el soporte para deshabilitar el
X-Powered-By
encabezado está integrado:fuente
De la fuente ( http://expressjs.com/en/api.html#app.set ). En Express 4.X solo configura la aplicación usando la línea de abajo;
fuente
Aquí hay un práctico middleware que puede colocar para cambiar X-Powered-By:
La configuración de X-Powered by en este caso anularía el valor predeterminado 'Express', por lo que no es necesario deshabilitar Y establecer un nuevo valor.
fuente
Tal vez esto podría ser obvio para los usuarios Express más experimentados, pero solo esto funcionó para mí:
fuente
A veces las respuestas en la parte superior no funcionan. Este es mi caso Tengo Express 4.17.1 y ninguna respuesta no funciona. Entonces inventé mi propia solución:
fuente
Para Ocultar, X-Powered By puedes usar el casco Node .js Library .
El enlace para eso es casco
fuente
Ninguna de las soluciones estándar funciona para mí tampoco. Después de mucha búsqueda descubrí que usamos un archivo de rutas donde se inició una nueva instancia express, que luego se agregó a la primera mediante app.use. Solo para las rutas en esta nueva instancia expresa, el encabezado X-Powered-By estaba presente.
Vista simplista del problema:
La solución fue simplemente crear un nuevo Express.Router en lugar de una instancia completa.
fuente
Lectura del código https://github.com/visionmedia/express/blob/master/lib/http.js#L72 me hace pensar que tendrá que vivir con él, ya que no parece ser condicional.
Si tiene un frontend nginx / apache, aún puede eliminar el encabezado (con mod_headers para apache y headers-more para nginx)
fuente
removeHeader solo funcionará en middleware de ruta, ejemplo de coffeescript
fuente
Nada de esto funcionó para mí, excepto esto (debe agregar otro parámetro):
Estoy usando Express ^ 4.17
fuente