将密码存储在 Node.js 文件中是否安全?

Is it safe to store a password in a Node.js file?

我已经将一个简单的应用程序部署到 Heroku,其中包含一个 JavaScript 文件,通过 Express 为 HTML 页面提供服务。该代码是从私人 Git 仓库中提取的。

现在,我在这个 JavaScript 文件中存储了一个密码,我的问题是:用户能否找到该密码?它仅用于从节点向外部资源发出的请求。

这是我提供页面的服务器端 JavaScript 代码的一部分:

const app = express();
const express = require('express');

const password = ******:

app.use(express.static(__dirname + '/dist/shop-info-angular'));

app.get('/', function (req, res) {
    res.sendFile(path.join(__dirname + '/dist/shop-info-angular/index.html'));
});

在此示例中,您的 JavaScript 文件将 运行 在服务器上,并且只将响应发送给用户。只要您在回复中发送的 index.html 不包含密码,您应该没问题。

但是,Heroku 提供了一个 better way to configure applications 特别适合密码等敏感信息。更新您的代码以从环境中获取密码:

const password = process.env.PASSWORD;

并在 Heroku 上设置环境变量:

heroku config:set PASSWORD=mysecretpassword

您也可以在本地使用环境变量,但请注意,它们与您在 Heroku 上设置的环境变量不同。毕竟,它们是 环境 特定的。 dotenv 之类的东西可以提供帮助。