【问题标题】:how to remove X-Powered-By in ExpressJS [duplicate]如何在 ExpressJS 中删除 X-Powered-By [重复]
【发布时间】: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


    【解决方案1】:

    不要删除它;让 Express 一开始就不要生成它:

    https://stackoverflow.com/a/12484642/506073

    转到您的app.js,然后:

    var app = express();
    

    添加:

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

    【讨论】:

    • IMO,这应该是答案 - 中间件会影响每个请求的性能,为什么不首先阻止生成标头?
    • 也可以使用app.set('x-powered-by', false);
    • 这只会在设置后临时删除自定义标题,如果我在代码中注释掉这一行,自定义标题会重新出现,所以它不会被删除......我需要删除它!我也试过res.removeHeader("custom1");,但没用...
    • err....它有效...在客户端上取下来
    • 这对我不起作用。 app.disable('x-powered-by'); 行似乎没有任何效果......
    【解决方案2】:

    更好的方法是:

    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");,但不起作用......
    • 最佳实践是在 express 中禁用它。看下面的答案
    【解决方案3】:

    中间件 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 2023-02-01
      相关资源
      最近更新 更多