variáveis de ambiente em relação a servidores da web e segurança

0

Eu quero definir algumas variáveis de ambiente na minha caixa de Linux que podem ser acessadas por um servidor node.js. Essas variáveis conterão informações confidenciais, como senhas de banco de dados e chaves de API.

Minha configuração atual é que um usuário com quase nenhum privilégio (nem sequer sudo) executa o servidor node.js. Porque eu quero limitar o que esse usuário pode fazer / saber apenas para executar o servidor (equivocado?), Eu não quero colocar as variáveis env no ~ / .bash_profile do usuário.

Então, meu pensamento foi colocar as variáveis de ambiente necessárias para o servidor em / etc / profile; Dessa forma, o usuário de baixo privilégio que está executando o servidor não teria as variáveis em sua configuração, mas ainda poderia usá-las. No entanto, as permissões em / etc / profile são tais que todo mundo tem acesso de leitura que faz sentido lógico, mas me deixa de volta onde eu comecei.

Qual é a melhor prática para variáveis de ambiente de servidor web em um sistema linux? Se eles sempre puderem ser lidos por qualquer usuário, o que torna as variáveis ambientais uma prática melhor do que apenas importar um arquivo de texto com chaves e valores localizados na raiz do projeto no servidor da web (como dotenv) ? É que as variáveis de ambiente não são uma questão de segurança e apenas uma das melhores práticas de manutenção, e é por isso que não consigo conectar os pontos aqui?

    
por zarroboogs 19.09.2017 / 17:36

2 respostas

1

Você não deve salvar dados confidenciais em texto sem formatação. Ele deve ser criptografado para que ninguém possa descriptografá-lo.

Adicionar todas as configurações no arquivo JSON Criptografe o arquivo JSON usando alguma senha e salve no servidor Durante a execução do aplicativo, descriptografe o arquivo e use variáveis

Consulte este módulo: link

Observação: para proteger esse código, você pode transformar seu javascript em um formato ilegível na produção usando o link .

Usar essa técnica pode salvar seu código.

    
por 29.05.2018 / 13:39
0

Você pode adicioná-los a um arquivo pertencente a um grupo diferente. Em seguida, configure /etc/sudoers para permitir que este usuário execute o servidor como o outro grupo.

Isso não dará ao usuário nenhum outro privilégio de sudo (como root). Você pode então usar um invólucro de shell para ajudar o usuário.

O Sudo é muito configurável.

    
por 19.09.2017 / 18:48