如何在Sails.js应用程序中禁用或替换X-Powered-By标头

Sla*_* II 9 javascript http-headers express sails.js

当我运行Sails.js应用程序时,它会自动为每个响应添加以下HTTP标头:X-Powered-By: "Sails <sailsjs.org>".

是否可以禁用或覆盖它?

HaN*_*riX 10

编辑你的config/http.js并设置poweredByfalse:

module.exports.http = {
  middleware: {
    poweredBy: false
  }
}
Run Code Online (Sandbox Code Playgroud)

由于Sails将禁用快速X-Powered-By标头,因此无需手动禁用它.


Sla*_* II 8

是的,这很有可能.

您将需要禁用Sails的中间件调用poweredBy,并告诉Express.js服务器不要添加它自己的头.

只需将config/http.js配置文件更新为如下所示:

module.exports.http = {
  middleware: {

    disablePoweredBy: function(request, response, next) {
      var expressApp = sails.hooks.http.app;
      expressApp.disable('x-powered-by');
//    response.set('X-Powered-By', 'One Thousand Hamsters');
      next();
    },

    order: [
//    ...
//    'poweredBy',
      'disablePoweredBy',
//    ...
    ]
  }
};
Run Code Online (Sandbox Code Playgroud)

在这里,我们从Sails钩子中检索Express Application的实例,然后使用它的disable()方法将x-powered-by配置参数设置为falsevalue.这将阻止标题出现.

为了启用此自定义中间件,您需要将其添加到order阵列中.你可以用中替换poweredBy中间件disablePoweredBy.

此外,通过取消注释response.set()方法,您可以设置自己的标头值.