переменные среды в отношении веб-серверов и безопасности

Я хочу установить некоторые переменные среды в моем Linux-окне, к которым может получить доступ сервер node.js. Эти переменные будут содержать конфиденциальную информацию, такую ​​как пароли базы данных и ключи API.

Моя текущая установка такова, что пользователь почти без прав (он не может даже sudo) запускает сервер node.js. Поскольку я хочу ограничить то, что этот пользователь может делать / знать, просто запуском сервера (ошибочно?), Я не хочу помещать переменные env в ~ / .bash_profile пользователя.

Я решил поместить переменные среды, необходимые для сервера, в / etc / profile; таким образом, пользователь с низкими привилегиями, запускающий сервер, не будет иметь переменных в своей конфигурации, но все равно сможет их использовать. Однако разрешения на / etc / profile таковы, что у всех есть доступ для чтения, что логично, но оставляет меня с того места, где я начал.

Как лучше всего использовать переменные среды веб-сервера в системе Linux? Если они всегда могут быть прочитаны любым пользователем, то что делает переменные среды лучшей практикой, чем просто импорт текстового файла с ключами и значениями, расположенными в корне проекта, на веб-сервер (например, dotenv) ? Дело в том, что переменные среды - это не вопрос безопасности, а просто лучший метод обслуживания, поэтому я не могу соединить здесь точки?

0
20.09.2017, 00:37
2 ответа

No debe guardar ningún dato confidencial en texto sin formato. Debe estar encriptado para que nadie pueda descifrarlo.

Agregar toda la configuración en el archivo JSON Cifre el archivo JSON usando alguna contraseña y guárdelo en el servidor Mientras ejecuta la aplicación, descifre el archivo y use variables

Consulte este módulo :https://github.com/nareshv/secure-conf

Nota :Para proteger dicho código, puede hacer su javascript en un formato ilegible en producción usandohttps://javascriptobfuscator.com/.

El uso de esta técnica puede guardar su código.

1
28.01.2020, 02:45

Вы можете добавить их в файл, принадлежащий другой группе. Затем настройте /etc/sudoers, чтобы разрешить этому пользователю запускать сервер под другой группой.

Это не даст пользователю никаких других привилегий sudo (, таких как root ). Затем вы можете использовать оболочку оболочки, чтобы помочь пользователю.

Sudo очень гибко настраивается.

0
28.01.2020, 02:45

Теги

Похожие вопросы