node.js - 将密码存储在 Node.js 文件中安全吗?

标签 node.js security heroku server passwords

我已经在 Heroku 上部署了一个简单的应用程序,其中包含一个通过 Express 提供 HTML 页面服务的 JavaScript 文件。该代码是从私有(private) Git 存储库中提取的。

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

这是我提供页面的服务器端 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可以提供帮助。

关于node.js - 将密码存储在 Node.js 文件中安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57834286/

相关文章:

javascript - 正文较大 (1.3 mb) 的 Node 发布消息错误 : 413 Request Entity Too Large

node.js - 找不到 ionic.config.json 文件。你在 Ionic 项目中吗?

javascript - JavaScript 循环迭代中的 POST 之间需要延迟

security - Red5 安全提示

node.js - meteor 推送到heroku : cannot find main. js

postgresql - 你可以在 Heroku 中拥有多个生产数据库吗?

javascript - 无法查看 JSON 数据

security - PBKDF2 是不符合 FIPS 的算法吗?

java - Hibernate hbm 文件中的过滤机制对于动态谓词不是很灵活

python - 如何在不使用 pip 的情况下在 Heroku 中安装 Python 包?