Onde devo escrever minhas credenciais de banco de dados no aplicativo node.js?

1

Estou implantando meu aplicativo node.js, que é baseado no Ghost, no Google Compute Engine. No entanto, não tenho certeza se é um bom comportamento gravar minhas credenciais de banco de dados em config.js .

O arquivo config.js é algo como o seguinte:

...
'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'
    },
},...

No entanto, isso inclui as credenciais do banco de dados codificadas em config.js . Não tenho certeza se isso é seguro o suficiente na produção.

Devo estar em melhor situação para definir as credenciais usando variáveis de ambiente de process.env.xxx (por exemplo, process.env.DB_USER )? Nesse caso, qual é a melhor maneira de gravar essas variáveis de ambiente em um arquivo e executar o aplicativo com a configuração?

    
por Blaszard 21.02.2017 / 17:34

1 resposta

0

Você nunca deve colocar as credenciais em nenhum arquivo que vá para o repositório do código-fonte.

O que geralmente é feito é usar variáveis de ambiente que são definidas usando um painel de controle de sua plataforma de hospedagem para uma solução mais simples, ou você pode usar ferramentas como o etcd para uma solução mais flexível. Veja:

Com o Node, você também pode usar o módulo dotenv para facilitar a configuração do env env durante o desenvolvimento. Veja:

por 21.02.2017 / 17:53