mongodb - 用户连接字符串,安全密码

时间:2014-06-12 22:16:13

标签: mongodb security connection

我一直在关注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 env var放入我的配置并移动密码超出源代码。

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

2 个答案:

答案 0 :(得分: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实例时,这两个数据中心都可用,因此您可以选择将您的应用程序和数据库放在同一数据中心,从而提高安全性。

答案 1 :(得分:0)

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

或许更重要的是 - 您是否在MongoLab托管数据库的同一数据中心托管您的应用程序?如果没有,该用户名和密码以及您的数据将以明文形式遍历互联网。

MongoLab目前不支持SSL(RestAPI除外),因此即使他们建议使用相同的数据中心:

  

您支持SSL吗?

     

尚未确定,但我们的路线图将于2014年夏季推出   与此同时,我们强烈建议您运行您的应用程序   同一数据中心中的数据库。如果您有专门的计划,我们也是   强烈建议您为自己配置自定义防火墙规则   (多个)数据库。

     

Rest API:

     

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

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

http://docs.mongolab.com/security/