Мне интересно, как мы можем скрыть конфиденциальные данные (пароли баз данных и другие пароли) от некоторых разработчиков для наших проектов PHP. Мы используем Subversion для наших проектов. Достаточно ли просто запретить некоторым пользователям доступ к папкам, в которых у нас есть файлы с паролями? Любые другие предложения?
У вас может быть таблица БД, в которой хранятся конфиденциальные данные, и только пользователи с правильными учетными данными могут читать из нее.
Каждый разработчик должен ввести имя пользователя и пароль для доступа к БД через некоторый файл конфигурации.
Кроме того, вам не нужно устанавливать имя пользователя и пароль для каждого разработчика, поскольку у вас может быть 3 уровня доступа, поэтому создайте только 3 пользователя, т.е.
DeveloperAdmin (может изменить таблицу паролей)
DeveloperTrustedRead (может читать таблицу паролей)
DeveloperNotTrusted (нет доступа к таблице паролей)
Таким образом, вы распространяете тот же пропуск пользователя БД для недоверенного разработчика.
Этого должно быть достаточно.
Если вы хотите реализовать экономичный, но безопасный способ, позволяющий разным людям получать доступ к одному и тому же ресурсу (защищенному паролем, как база данных) с разными уровнями безопасности, посмотрите на этот ответ. Различные способы хранить переменную пароля в веб-приложении Java? и реализовать вариант 3 таким образом
Таким образом, вы можете распространять любой файл в SVN, так как вы будете удерживать ключ для расшифровки учетных данных, которые имеют значение, в то время как распределенный ключ предоставит доступ к менее мощному / опасному набору разрешений.
Это имеет смысл, только если они нужны вам для доступа к защищенному паролем ресурсу (например, к БД), но вы беспокоитесь о предоставлении высоких привилегий недоверенным людям, поэтому вы хотите минимизировать их разрешения для БД (или любого другого защищенного ресурса) и продолжайте делиться кодом легко.