【问题标题】:Disable X-Powered-By in nestjs does not work在 nestjs 中禁用 X-Powered-By 不起作用
【发布时间】:2022-04-21 05:05:44
【问题描述】:

我想像下面这样在nestjs中禁用X-Powered-By,但它不起作用。

main.ts:

async function bootstrap() {
    const logger = new Logger('bootstrap') 
    const app = await NestFactory.create<NestExpressApplication>(AppModule);
  
    app.disable('X-Powered-By') // this line
    ...
    
    const PORT = process.env.PORT
    await app.listen(PORT);
    logger.log(`Application is start on port : ${PORT}`)
  }
  
  bootstrap();

禁用X-Powered-By 标头后,在接下来的请求中,X-Powered-By 标头仍然存在。

我哪里做错了?

【问题讨论】:

    标签: nestjs


    【解决方案1】:

    如果app.disable('x-powered-by') 不起作用,您可以尝试/修复它:

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

    【讨论】:

    • 这适用于我的 Nest、Express 和 Typescript。
    • 这是适用于当前版本 8.x 的版本
    【解决方案2】:

    如果您使用的是 TypeScript,并且在您的 IDE 中收到错误消息 Property 'disable' does not exist on type 'INestApplication',请在您的 NestFactory.create 调用中指定应用类型。

    您的代码应如下所示,app.disable 调用上的错误将消失。

    const app = await NestFactory.create<NestExpressApplication>(AppModule)
    
    app.disable('x-powered-by')
    

    【讨论】:

      【解决方案3】:

      尝试使用: app.disable('x-powered-by') - 所以全部小写,它应该可以工作!

      【讨论】:

        【解决方案4】:

        正确的方法是添加helmet,因为不仅可以删除x-powered-by,还可以帮助处理其他标题

        【讨论】:

          猜你喜欢
          • 2019-06-01
          • 1970-01-01
          • 2021-12-06
          • 2012-01-08
          • 2011-02-09
          • 2021-09-27
          • 2017-06-23
          • 2015-03-31
          • 2014-11-07
          相关资源
          最近更新 更多