javascript node - Impossible de se débarrasser de l'en-tête X-Powered-By:Express





http server (9)


Pour cacher, X-Powered By vous pouvez utiliser le casque Node .js Library.

Le lien pour ça c'est un helmet

var helmet = require('helmet');
app.use(helmet.hidePoweredBy());

Je cours un serveur sur nodejs avec express. Je n'arrive pas à me débarrasser de l'en-tête:

X-Powered-By:Express

Je me demandais s'il y avait moyen de se débarrasser de cet en-tête ou est-ce que je dois vivre avec?




removeHeader ne fonctionnera que dans le middleware de route, exemple coffeescript

fix_headers =  (req, res, next) ->
    res.removeHeader 'X-Powered-By'
    next()

app.get '/posts', fix_headers, (req, res, next) ->
  ...



De la source ( http://expressjs.com/en/api.html#app.set ). Dans Express 4.X il suffit de définir l'application en utilisant la ligne ci-dessous;

app.set('x-powered-by', false) // hide x-powered-by header!



À partir de Express v3.0.0rc5, la prise en charge de la désactivation de l'en X-Powered-By tête X-Powered-By est intégrée:

var express = require('express');

var app = express();
app.disable('x-powered-by');



Voici un intergiciel pratique que vous pouvez utiliser pour échanger 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

Si vous définissez X-Powered by dans ce cas, la valeur par défaut 'Express' est remplacée. Vous n'avez donc pas besoin de désactiver ET de définir une nouvelle valeur.







Dans Express> = 3.0.0rc5:

app.disable('x-powered-by');

Voici un middleware simple qui supprime l'en-tête dans les versions antérieures d'Express:

app.use(function (req, res, next) {
  res.removeHeader("x-powered-by");
  next();
});



Peut-être que cela pourrait être évident pour les utilisateurs Express plus expérimentés, mais seulement cela a fonctionné pour moi:

app.configure(function() {
    app.use(function (req, res, next) {
        res.removeHeader("X-Powered-By");
        next();
    });
});







javascript node.js express http-headers webserver