【发布时间】:2012-05-29 20:50:01
【问题描述】:
我想删除 X-Powered-By 以确保安全,在 ExpressJS(node.js) 中保存带宽。怎么做? 可能是过滤器(app.use)?
app.use(function(req,res,next_cb){ /* remove X-Powered-By header */ next_cb(); }
【问题讨论】:
标签: http node.js http-headers express
我想删除 X-Powered-By 以确保安全,在 ExpressJS(node.js) 中保存带宽。怎么做? 可能是过滤器(app.use)?
app.use(function(req,res,next_cb){ /* remove X-Powered-By header */ next_cb(); }
【问题讨论】:
标签: http node.js http-headers express
不要删除它;让 Express 一开始就不要生成它:
https://stackoverflow.com/a/12484642/506073
转到您的app.js,然后:
var app = express();
添加:
app.disable('x-powered-by');
【讨论】:
app.set('x-powered-by', false);
res.removeHeader("custom1");,但没用...
app.disable('x-powered-by'); 行似乎没有任何效果......
更好的方法是:
app.disable('x-powered-by');
您还可以制作一个中间件来删除任何标题,如下所示:
app.use(function (req, res, next) {
res.removeHeader("X-Powered-By");
next();
});
查看有关如何删除标题的更多信息:
http://nodejs.org/api/http.html#http_response_removeheader_name
【讨论】:
app.disable('custom1'); 它工作正常(它从服务器响应中删除了标头)。但是后来我注释掉了app.disable('custom1');,标题又出现了……这正常吗?我的代码中不再有res.header("custom1", "test");,因为我不再需要那个标题,但它仍然出现......
app.disable('custom1'); 它工作正常(它从服务器响应中删除了标头)。但是后来我注释掉了app.disable('custom1');,标题又出现了……这正常吗?我的代码中不再有res.header("custom1", "test");,因为我不再需要那个标题,但它仍然出现......我也尝试过res.removeHeader("custom1");,但不起作用......
中间件 sn-p 来自:Can't get rid of header X-Powered-By:Express
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
【讨论】: