gpt4 book ai didi

java - 加密数据库密码 MongoDb

转载 作者:行者123 更新时间:2023-11-30 07:46:11 30 4
gpt4 key购买 nike

我们有一个rest api,需要与Mongodb(目前是postgres)通信,现在在api的属性/配置文件中,我们正在硬编码数据库密码。我们正在使用 JDBC 连接到 postgres,我们需要决定是使用相同的 JDBC 还是 Mongoclient 来连接 MongoDB。

所以问题是

  • 有没有办法加密数据库密码并发送到网络并连接到 Mongo Db,而不是在属性文件中硬编码密码。?或
  • 使用SSL从rest api连接到MongoDB,这样密码甚至可以是属性文件中的纯文本。

上面的哪一个是避免安全威胁的最佳方法...我们在 AWS 中拥有 API 和数据库...

最佳答案

无法单独加密 Mongo 密码,您需要使用 SSL 加密整个连接。

如果您正在管理自己的 mongodb 实例,则需要查看此文档:https://docs.mongodb.org/manual/tutorial/configure-ssl/

如果您正在雇用一些 mongodb 提供商(例如 mongolab),他们通常会提供一种在您的连接中启用 SSL 的方法(但他们通常将此功能限制为付费计划)。

存储数据库密码的常用方法是通过环境变量。这样您就不会将这些值保存到 git,并且可以直接在服务器上配置这些值。

要在 UNIX 中配置环境变量,需要这样导出:

export MONGODB_DB_URL_ADMIN=mongodb://myuser:mypassword@ds01345.mongolab.com:35123/my_database_name

并在代码中使用它(NodeJS + mongoose 示例):

var mongoDbURL = process.env.MONGODB_DB_URL_ADMIN || "mongodb://127.0.0.1/myLocalDB";
var db = mongoose.createConnection(mongoDbURL);
db.model("MyModel", mySchema, "myCollectionName");

如果您使用 PaaS(如 Heroku),它们通常提供一种使用其界面设置环境变量的方法。这样,这个变量就可以在您使用的每个实例中配置。如果您要设置自己的 Linux 实例,则需要将这些值放在启动脚本 (.bashrc) 或其他方法(例如/etc/environment)下

关于java - 加密数据库密码 MongoDb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33924382/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com