【问题标题】:Is it safe to store a password in a Node.js file?将密码存储在 Node.js 文件中是否安全?
【发布时间】:2019-09-07 13:48:52
【问题描述】:

我已经将一个简单的应用程序部署到 Heroku,其中包含一个通过 Express 为 HTML 页面提供服务的 JavaScript 文件。代码是从私人 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 文件?您是将文件本身发送到用户的浏览器,还是生成 HTTP 响应并发送?如果您edit 您的问题并包含文件的相关部分(确保将密码本身取出),这可能是最好的。不过,肯定有比硬编码密码更好的选择。
  • 我更新了问题,如果我可以添加更多信息,请告诉我,谢谢。

标签: node.js security heroku server passwords


【解决方案1】:

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

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

const password = process.env.PASSWORD;

并在 Heroku 上设置环境变量:

heroku config:set PASSWORD=mysecretpassword

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

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 2015-06-22
    • 2012-11-09
    • 1970-01-01
    • 2011-07-11
    • 2012-07-30
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多