Файл Config.php имеет пароль Mysql в виде простого текста, это разумно?
Заголовок в основном говорит сам за себя: файл config.php по умолчанию, созданный при установке продукта / интерфейса CRM (SugarCRM), который приобрел мой клиент, хранит пароль пользователя базы данных MySQL в виде простого текста?
Есть ли хороший способ зашифровать сам пароль, чтобы он не просто находился в легко читаемом файле?
Или это просто вопрос, если у кого-то уже есть доступ к файлу, то у вас уже куча проблем, поскольку они уже есть в вашей системе?
Просто интересно, если / какие лучшие практики для такого типа ситуаций могут быть?
3 ответа
Файлы конфигурации веб-приложений обычно содержат секреты в виде простого текста.
Большинство поставщиков облачного хостинга (IaaS/PaaS) поддерживают передачу пользовательских данных при запуске экземпляров, чтобы они были доступны в качестве переменных среды. Однако приложение должно быть модифицировано для поддержки чтения секретов из переменных окружения. Приведи пример из Heroku.
Есть ли хороший способ зашифровать сам пароль, чтобы он не просто находился в легко читаемом файле?
Права доступа к файлу не должны быть доступны для чтения всем пользователям.
Или это просто вопрос, если у кого-то уже есть доступ к файлу, то у вас уже куча проблем, поскольку они уже есть в вашей системе?
Да. Доступ к системе - это ситуация с партнером. Укрепление системы является первым шагом. Укрепление должно быть сделано на всех уровнях: приложение, база данных, ОС, сеть и т. Д.
Помните, что безопасность - это движущаяся цель, и она никогда не делается.
Или это просто вопрос, если у кого-то уже есть доступ к файлу, то у вас уже куча проблем, поскольку они уже есть в вашей системе?
Да.
Существуют способы частично смягчить это с помощью схем шифрования, загрузки паролей и т. Д. Непосредственно в память и т. Д., Но эти схемы на самом деле предназначены для обфускации. Если вы хотите, чтобы что-то автоматически входило во что-то другое, у вас нет выбора, кроме как установить какой-то секрет, обычный текст или нет, чтобы дать ему возможность сделать это. Как только вы это сделаете, системный компромисс всегда означает, что секрет также скомпрометирован. Схемы, чтобы сделать это более трудным, делают только это... они не делают это невозможным.
Системы с высоким уровнем безопасности, которым требуется автоматический вход в систему, обычно используют подробный мониторинг для выявления случаев злоупотребления, а не для запрета доступа.
Единственный способ убедиться в этом - вообще никогда не передавать пароль в цифровое хранилище и заставлять людей его вводить.
В будущем у нас будет ИИ, который сделает это за нас, но сейчас это то, что у нас есть.