【问题标题】:How to disable "X-Powered-By" response header in create-react-app?如何在 create-react-app 中禁用“X-Powered-By”响应标头?
【发布时间】:2021-12-06 07:08:41
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js express create-react-app


    【解决方案1】:

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

    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 标头不再存在。

    如果您只是想隐藏 x-powered-by 标头,我建议您尝试一下:

    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);
    

    【讨论】:

    • server/api 是用不同的语言和 Web 框架编写的。我无法访问 create-react-app 中的 express 应用程序 :(
    • 标头来自服务器,所以我认为没有访问权限就无法删除它们。您可以包装 api 调用以过滤标头,但我不知道这将起到什么作用...
    【解决方案2】:

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

    【讨论】:

    • 嘿山姆,刚才我看到你的推特页面,我知道你是一名机器人工程师。我对机器人很感兴趣,但不幸的是,我只是一名软件工程师。你能帮我了解更多关于机器人的知识吗,也许你能推荐一本书/课程,这真的很有帮助。万分感谢。保重。
    猜你喜欢
    • 2015-03-31
    • 2022-12-29
    • 2012-01-08
    • 2013-12-28
    • 2011-05-03
    • 1970-01-01
    • 2011-01-20
    • 2019-06-01
    相关资源
    最近更新 更多