如何在 create-react-app 中禁用 "X-Powered-By" 响应 header?

How to disable "X-Powered-By" response header in create-react-app?

我正在使用 Create-react-app 开发 react.js 应用程序,在响应中 headers 我看到了 Express 的 x-powered-by header 和我想禁用这个特定的 header 字段。有没有办法做到这一点?在 Next.js 中,我们可以通过向配置文件添加一些代码来禁用此 header 字段,我们可以在我的场景中实现相同的效果吗?

React 是一个客户端框架,不会处理将您的应用程序提供给浏览器的问题。无论您使用什么系统来托管您的应用程序,都要对此负责 header。一些 CRA 模板将 webpack-dev-server 用于 npm start,它是基于 Express 构建的,可能是显示 header 的内容。由于这实际上不是您应用程序的一部分,因此即使您可以将其关闭也没有多大意义。

我建议看一下 helmet,这将删除 x-powered-by header 并通过设置其他 http header 来增强安全性(请参阅文档。有关详细信息)

const express = require("express");
const helmet = require("helmet");

const app = express();

app.use(helmet());

app.get("/test", (req, resp) => { 
    resp.send('Testing with Helmet');
})

app.listen(3000);

当您使用头盔时,您会看到 X-Powered-By: Express header 不再存在。

如果您只是想要隐藏 x-powered-by header,我建议您尝试:

const express = require("express");
const helmet = require("helmet");

const app = express();

app.use(helmet.hidePoweredBy());

app.get("/test", (req, resp) => { 
    resp.send('Testing with Helmet');
})

app.listen(3000);