如何在开源应用程序中安全地存储帐户数据?



我需要为我的开源应用程序存储用户帐户数据,如电子邮件,散列密码,收藏等。

我考虑过的两个选项是:将信息存储在MongoDB Atlas数据库或存储在JSON文件中。

由于该应用程序在GitHub上是开源的,这两个选项会产生一些问题。如果使用MongoDB,那么我的API密钥将在源代码中暴露,这不是那么好。这也将使人们难以在当地测试该项目。如果使用本地JSON文件,用户将能够看到存储在存储库中的所有用户敏感信息,这肯定不是很好。我在这里有什么选择,能够安全,轻松地控制帐户创建和数据存储?欢呼。

由于该应用程序在GitHub上是开源的,这两个选项会产生一些问题。如果使用MongoDB,那么我的API密钥将在源代码中暴露…

在本地机器上使用环境变量是一个很好的例子。在代码中,你可以这样做

process.env.<APPLICATION_NAME>_API_KEY;

如果与您合作的开发人员足够信任,可以处理您的数据库凭据,那么您可以闭门共享。

这也将使人们难以在本地测试项目…

这是一个很好的实践,无论未来你可能与nodejs或其他软件开发的努力。不应该在生产数据库上进行测试。如果您正在测试的数据库不是生产数据库,那很好,但是出于测试目的使用敏感用户数据仍然存在问题。银行希望不会使用真实账户来测试交易。如果出现了一个错误,账户最终被掏空了,而且从一开始就没有记录里面有多少钱,该怎么办?

我建议您设置一种方法,用虚拟数据填充数据库,用于测试目的。这可能是一个SQL脚本,然后你可以提交到你的repo,并更新你的说明,让新的开发人员和贡献者可以为测试目的而启动自己的数据库。

最新更新