【问题标题】:mongodb - user connection string, secure passwordmongodb - 用户连接字符串,安全密码
【发布时间】:2014-06-12 22:16:13
【问题描述】:

我一直在学习 express、node 和 mongo 的教程。 我在服务器端有一个配置文件:

production:{
    db:'mongodb://MYUSERNAME:MYPASSWORD@ds033307.mongolab.com:33307/dbname',
    rootPath:rootPath,
    port:process.env.PORT||80
}

所以,我在服务器端 javascript 文件中以明文形式保存了我的用户名和密码。我应该担心这个吗?如果是的话,我还能把它放在哪里?

谢谢。

编辑:我回去查看了 mongolab 和 heroku(我的网站所在的位置)docs

我在哪里找到:“MongoLab 插件为您的 Heroku 环境贡献了一个配置变量:MONGOLAB_URI”,因此我能够将 MONGOLAB_URI 环境变量放入我的配置中并移动密码出源代码。

关于同一个数据中心,我是否可以假设 heroku 不会在他们的数据中心托管我的 mongolab 数据库,而是调用云服务 mongo 数据库?如果我想坚持使用 mongolab 和 heroku,我能做的不多吗?

【问题讨论】:

    标签: mongodb security connection


    【解决方案1】:

    我知道这个问题很老,但根据 Heroku 的文档,他们目前使用 2 个数据中心 (https://devcenter.heroku.com/articles/regions#data-center-locations)。

    他们的美国服务器是“amazon-web-services::us-east-1”,他们的欧洲服务器是“amazon-web-services::eu-west-1”。

    在 Mongolab 上启动 mongo 实例时,这两个数据中心都可用,因此您可以选择让您的应用和数据库位于同一个数据中心,从而大大提高安全性。

    【讨论】:

      【解决方案2】:

      我认为您应该始终关注将密码存储在源代码文件中。通常,最好将其保存在单独管理的配置文件中。这使您可以灵活地使用具有不同配置文件的相同代码来指向开发或 qa 数据库。

      也许更大的问题 - 您是否在 MongoLab 托管您的数据库的同一个数据中心托管您的应用程序?否则,该用户名和密码以及您的数据将在互联网上以明文形式传输。

      MongoLab 目前不支持 SSL(他们的 RestAPI 除外),所以即使他们建议在同一个数据中心内:

      你们支持 SSL 吗?

      目前还没有,但我们计划在 2014 年夏季推出。 同时,我们强烈建议您运行您的应用程序并 同一个数据中心的数据库。如果您有专用计划,我们还 强烈建议您配置自定义防火墙规则 数据库。

      休息 API:

      每个 MongoLab 帐户都附带一个 REST API,可用于访问 属于该帐户的数据库、集合和文件。 API 公开了您在 MongoDB 中可以找到的大部分操作 驱动程序,但通过 HTTPS 将它们作为 RESTful 接口提供。

      我肯定会仔细阅读 MongoLab 的安全页面:

      https://docs.mongodb.com/manual/security/

      【讨论】:

        猜你喜欢
        • 2017-01-17
        • 2015-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-15
        相关资源
        最近更新 更多