web-dev-qa-db-ja.com

node.jsアプリのどこにデータベースの資格情報を書き込む必要がありますか?

Ghostをベースにしたnode.jsアプリをGoogleComputeEngineにデプロイしています。ただし、データベースの資格情報を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)を使用して資格情報を設定する方がよいでしょうか?その場合、それらの環境変数をファイルに書き込み、構成を使用してアプリを実行するための最良の方法は何ですか?

2
Blaszard

ソースコードリポジトリに移動するファイルに資格情報を入れないでください。

通常行われることは、最も単純なソリューションの場合はホスティングプラットフォームのコントロールパネルを使用して設定された環境変数を使用することです。または、より柔軟なソリューションの場合はetcdなどのツールを使用できます。見る:

Node)を使用すると、dotenvモジュールを使用して、開発中にenv変数を簡単に設定することもできます。参照:

2
rsp