javascript - node - No se puede deshacer del encabezado X-Powered-By: Express
node js http request (9)
A partir de Express v3.0.0rc5, la compatibilidad para deshabilitar el encabezado X-Powered-By
está integrada en:
var express = require(''express'');
var app = express();
app.disable(''x-powered-by'');
Estoy ejecutando un servidor en nodejs con express. Parece que no puedo deshacerme del encabezado:
X-Powered-By:Express
Me preguntaba si hay alguna manera de deshacerse de este encabezado o tengo que vivir con él.
Aquí hay un útil middleware que puedes usar para intercambiar X-Powered-By:
function customHeaders( req, res, next ){
// Switch off the default ''X-Powered-By: Express'' header
app.disable( ''x-powered-by'' );
// OR set your own header here
res.setHeader( ''X-Powered-By'', ''Awesome App v0.0.1'' );
// .. other headers here
next()
}
app.use( customHeaders );
// ... now your code goes here
El ajuste de X-Powered by en este caso anularía el ''Express'' predeterminado, por lo que no es necesario que deshabilite Y establezca un nuevo valor.
Desde la fuente ( http://expressjs.com/en/api.html#app.set ). En Express 4.X simplemente configure la aplicación usando la línea siguiente;
app.set(''x-powered-by'', false) // hide x-powered-by header!
En Express> = 3.0.0rc5:
app.disable(''x-powered-by'');
Aquí hay un middleware simple que elimina el encabezado en versiones anteriores de Express:
app.use(function (req, res, next) {
res.removeHeader("x-powered-by");
next();
});
Leer el 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, puede eliminar el encabezado con él (con mod_headers para apache y headers-more para nginx)
Para Ocultar, X-Powered By puede usar el casco Node .js Library.
El enlace para eso es helmet
var helmet = require(''helmet'');
app.use(helmet.hidePoweredBy());
Solo para aprovechar la respuesta de rjack, también podría (opcionalmente) cambiar (configurar) el encabezado X-powered por algo mucho más frío / personalizado como este:
app.use(function (req, res, next) {
res.header("X-powered-by", "Blood, sweat, and tears")
next()
})
Tal vez esto podría ser obvio para los usuarios de Express más experimentados, pero solo esto funcionó para mí:
app.configure(function() {
app.use(function (req, res, next) {
res.removeHeader("X-Powered-By");
next();
});
});
removeHeader solo funcionará en middleware de ruta, ejemplo coffeescript
fix_headers = (req, res, next) ->
res.removeHeader ''X-Powered-By''
next()
app.get ''/posts'', fix_headers, (req, res, next) ->
...