【问题标题】:Why do i need to hide api keys/environment variables for my server?为什么我需要为我的服务器隐藏 api 键/环境变量?
【发布时间】:2026-01-11 09:30:01
【问题描述】:

我是在 MERN 堆栈应用程序的上下文中提出这个问题的,但我确信它也普遍适用。

为什么我们必须在我们的服务器中隐藏数据库和其他服务的 API 密钥。如果我们必须使用 dotenv 或其他机制从代码中抽象出来,这是否意味着用户可以查看我们的代码?这不是意味着用户将能够看到我们的服务器端业务逻辑吗?

我对此感到非常困惑。 :(

【问题讨论】:

  • 如果您使用 git 等版本控制系统,您不希望将您的 api 密钥推送到每个人都可以读取它们的存储库中。在源代码中硬编码这些值通常是不好的做法。

标签: node.js environment-variables api-key dotenv


【解决方案1】:

api 键/环境变量通常包含一些敏感信息。比如token secret、db连接信息等。如果你直接把它们放到版本控制中,这些敏感数据可能会泄露给不受欢迎的人。

此外,通过抽象这些变量,我们可以在构建和运行项目时更轻松地配置它们。例如,如果我们想使用相同的代码库启动多个服务器,但我们希望每个服务器连接到不同的 MongoDB 实例,我们可以只配置环境变量而不是更改代码库。

【讨论】:

    【解决方案2】:

    开发人员的一个重要优势是它可以轻松地将代码部署到不同的环境。 当硬编码这些值时,这意味着您需要在本地、开发环境或生产环境中运行代码时更改代码。

    【讨论】: