不能摆脱标题X-Powered-By:Express

我在expressj上运行nodejs上的服务器。 我似乎无法摆脱标题:

X-Powered-By:Express 

我想知道是否有办法摆脱这个标题,还是我必须忍受它?

在Express> = 3.0.0rc5中:

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

这是一个简单的中间件,可以删除早期版本的Express中的标题:

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

为了回收rjack的答案,你也可以(可选地)将X-powered-by标头更改(设置)为更酷/自定义的东西,如下所示:

 app.use(function (req, res, next) { res.header("X-powered-by", "Blood, sweat, and tears") next() }) 

从Express v3.0.0rc5开始,支持禁用X-Powered-By标头:

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

从源代码( http://expressjs.com/en/api.html#app.set )。 在Express 4.X只需使用下面的行设置应用程序;

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

这里有一个方便的中间件,你可以放进去换掉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 

在这种情况下设置X-Powered将覆盖默认的“快速”,所以你不需要同时禁用和设置一个新的值。

也许这对于经验丰富的Express用户来说可能是显而易见的,但是这只对我有效:

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

阅读代码https://github.com/visionmedia/express/blob/master/lib/http.js#L72让我觉得你将不得不忍受它,因为它似乎没有条件。;

如果你有一个nginx / apache的前端,你仍然可以删除它的头(与mod_headers为Apache和标题 – 更多的Nginx)

对于隐藏,X-Powered你可以使用Node.js库头盔

该链接是头盔

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

removeHeader只能在路由中间件,coffeescript例子中使用

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