我应该在 node.js 应用程序中的哪里写入数据库凭据?

我应该在 node.js 应用程序中的哪里写入数据库凭据?

我正在 Google Compute Engine 上部署基于 Ghost 的 node.js 应用程序。但是,我不确定在 中写入数据库凭据是否是一种好的行为config.js

config.js文件类似以下内容:

...
'production': {
    url: 'http://127.0.0.1:2368',
    database: {
        client: 'mysql',
        connection: {
            host     : '127.0.0.1',
            user     : 'root',
            password : 'root',
            database : 'ghost',
            charset  : 'utf8'
        }
    },
    server: {
        host: '127.0.0.1',
        port: '2368'
    },
},...

但是,这包括硬编码的数据库凭据config.js。我不确定这在生产中是否足够安全。

我是否应该最好使用来自process.env.xxx(例如process.env.DB_USER)的环境变量来设置凭据? 在这种情况下,将这些环境变量写入文件中并使用配置运行应用程序的最佳方法是什么?

答案1

您绝不应该将凭据放入进入源代码存储库的任何文件中。

通常的做法是使用通过托管平台的控制面板设置的环境变量来获得最简单的解决方案,或者您可以使用 etcd 等工具来获得更灵活的解决方案。请参阅:

使用 Node,您还可以使用 dotenv 模块在开发过程中更轻松地设置环境变量。请参阅:

相关内容