将数据库生产密码放在json配置文件

时间:2016-07-19 18:56:34

标签: javascript node.js express

将数据库密码存储在json配置文件中是不是一种坏习惯?

像:

production.json

{
  "database": {
     "user": "...",
     "pass": "...
  }
}

如果是这样,如何避免?我看到很多人这样做,这不是真的危险吗?

感谢。

2 个答案:

答案 0 :(得分:1)

是的,如果您将配置produ.json / production.js与您的凭据或秘密上传到GitHub,Bitbucket等公共存储库,那可能会很糟糕。错误的人可能有权写入您的数据库,能力取消密码等等。

有几种方法可以避免这种情况:

  1. 将您的production.json / production.js添加到.gitignore文件中,这样当您将更改推送到存储库时,它就不会提升您的凭据
  2. 保留一个示例模板production.json / production.js文件,用DATABASE_USER,DATABASE_PASSWORD,APP_SECRET(更常见)等持有者填写用户,密码和密码字段
  3. 对于另一个使用您的代码的用户,他们会(分别):

    1. 必须告诉您获取正确的配置production.json / production.js文件
    2. 创建自己的production.json / production.js文件,根据您提供的模板填写自己的数据库用户,密码和app secret(更常见)
    3. 希望能够解决问题。

答案 1 :(得分:0)

密码是否清除无关紧要。如果有人可以查看配置,他/她也可以查看该程序,并找出如何连接到数据库。只需确保配置只能由真正需要它的程序读取。