6

我正在使用 Next 创建一个 Web 应用程序,我想x-powered-by从响应标头中删除,我尝试创建自定义服务器并使用 expressjs .disable('x-powered-by'),但它没有用。

这是我所做的:

const express = require('express')
const next = require('next')

const port = parseInt(process.env.PORT, 10) || 3001
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()


app.prepare()
.then(() => {
  const server = express()
  .use(handle)


  server.disable('x-powered-by'); // ???

  server.listen(port, (err) => {
    if (err) throw err
    console.log(`> Ready on http://localhost:${port}`)
  })
})
4

4 回答 4

5

对我来说,当我使用server.disable('x-powered-by');, 以Next.js 7.0.2作为x-powered-by价值结束。

在下面添加next.config.js应该工作

module.exports = {
    poweredByHeader: false,
    ...
}

或者

const app = next({ dev, xPoweredBy: false })
于 2019-04-25T10:38:48.483 回答
4

以下代码有效。从 Express 中删除 X-Powered-By 标头是正确的。因为您使用的是 Next,所以您需要禁用Next 和 Express X-Powered-By 标头。

我没有从 Next 中找到要禁用的 api。但是你可以直接改变对象app.config.poweredByHeader = false

const express = require('express')
const next = require('next')

const port = parseInt(process.env.PORT, 10) || 3001
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()

app.config.poweredByHeader = false

app.prepare()
.then(() => {
  const server = express().use(handle)

  server.disable('x-powered-by'); // This disables Express Header

  server.listen(port, (err) => {
    if (err) throw err
    console.log(`> Ready on http://localhost:${port}`)
  })
})
于 2018-02-04T09:42:39.363 回答
1

现在很简单。

默认情况下,Next.js 将添加 x-powered-by 标头。要退出它,请打开 next.config.js 并禁用 poweredByHeader 配置:

module.exports = {
  poweredByHeader: false,
}

请参阅 - https://nextjs.org/docs/api-reference/next.config.js/disabling-x-powered-by

于 2021-04-14T12:21:26.310 回答
1

好吧,如果您不想返回此标头,则只需编写

res.removeHeader('header-name'); //any header that you want to remove

所以你需要写

res.removeHeader('X-Powered-By');

在终点

于 2018-02-04T09:21:11.787 回答