Мне интересно, как мы можем скрыть конфиденциальные данные (пароли баз данных и другие пароли) от некоторых разработчиков для наших проектов PHP. Мы используем Subversion для наших проектов. Достаточно ли просто запретить некоторым пользователям доступ к папкам, где у нас есть файлы с паролями? Любые другие предложения?Как скрыть конфиденциальные данные от разработчиков
ответ
- Не храните конфиденциальные данные в системе управления версиями кода. Держите переменные пустыми.
- После первой проверки задайте переменные локально.
- В случае распределенных/удаленных баз данных просто создайте для этого пользователя другой доступ для доступа к этой базе данных и предоставления учетных данных.
- После того, как вы установили значения, исключите эти файлы из обновлений позже.
У вас может быть таблица БД, в которой хранятся конфиденциальные данные, и только пользователи с правильными учетными данными могут читать с нее. Каждый разработчик должен ввести имя пользователя и пароль для доступа к БД через некоторый файл конфигурации. Также вам не нужно устанавливать пользователя и пароль для каждого разработчика, так как вы можете иметь 3 уровня доступа, поэтому создавайте только 3 пользователя, то есть DeveloperAdmin (может менять таблицу паролей) DeveloperTrustedRead (можно прочитать таблицу паролей) DeveloperNotTrusted (без доступа к таблице паролей) Таким образом, вы распространяете один и тот же пароль пользователя db для не доверенного разработчика.
Должно быть достаточно.
Если вы хотите внедрить экономически эффективный, но безопасный способ позволить другим людям обращаться к одному и тому же ресурсу (защищенному паролем, как к базе данных) с различными уровнями безопасности, посмотрите на этот ответ Different ways to store a password variable in a Java web application? и реализуйте опцию 3 таким образом
- создать несколько имен пользователей/паролей для доступа к одному ресурсу - как еще один ответ указывает на DeveloperTrustedRead, DeveloperNotTrustedRead и т.д ... роль в базе данных, каждый с другим именем пользователя и паролем. DeveloperNotTrustedRead (для базы данных) не должен создавать процедуру, изменять таблицу, таблицы перетаскивания, получать доступ к другим БД, отличным от того, с которым он работает, и т. Д.
- шифровать имя пользователя/пароль для каждой роли с другим ключом в вашем приложении (т.е. 3)
- дать ненадежный разработчику ключ только для расшифровки имя пользователя/пароль, связанный с ролью, которая имеет меньше прав доступа, как DeveloperNotTrustedRead или DeveloperNotTrustedWrite
Таким образом, вы можете распространять любой файл в SVN, как вы будет содержать ключ для дешифрования учетных данных, который имеет значение, в то время как распределенный ключ предоставит доступ к менее мощному/опасному набору разрешений.
Это имеет смысл только в том случае, если вам необходимо получить доступ к ресурсу, защищенному паролем (т. Е. К БД), но вы обеспокоены тем, что не доверяете людям, поэтому вы хотите свести к минимуму их разрешения для БД (или любых других защищенный ресурс) и легко передавать код.
- 1. Как скрыть конфиденциальные данные, написанные на Javascript?
- 2. Скрыть конфиденциальные данные сообщения в Laravel
- 3. Скрыть/Маска Конфиденциальные данные весной REST Response
- 4. Скрыть конфиденциальные данные в столбце таблицы html
- 5. Скрыть конфиденциальные данные в файловой системе iOS
- 6. Как безопасно хранить конфиденциальные данные?
- 7. EntityFramework хранит конфиденциальные данные
- 8. Скрыть ветки git от других разработчиков
- 9. Java Regular Expression, чтобы скрыть конфиденциальные данные в журналах
- 10. Локальный сайт хранит конфиденциальные данные
- 11. Скомпилирует ли мои конфиденциальные данные?
- 12. Где хранить конфиденциальные данные/информацию
- 13. Отправить конфиденциальные данные в JavaScript
- 14. Android как обрабатывать конфиденциальные данные в памяти
- 15. Как хранить конфиденциальные данные в PHP?
- 16. Как хранить конфиденциальные данные в базе данных?
- 17. Как дезинфицировать/скрывать конфиденциальные данные в C#
- 18. Как удалить конфиденциальные данные из функции debug_backtrace?
- 19. Как защитить конфиденциальные данные в URL-адресах
- 20. Как очистить конфиденциальные данные в наборах меркурийных?
- 21. Как хранить конфиденциальные данные в реакторе?
- 22. Github не позволит мне удалить конфиденциальные данные
- 23. Необходимо ли шифровать конфиденциальные данные сеанса ASP.NET?
- 24. Где хранить конфиденциальные данные в браузере?
- 25. SQL Server 2014 Может ли конфиденциальные данные скрываться или запутываться у разработчиков
- 26. Как скрыть конфиденциальные данные перед тем, как отправиться в GitHub (или любой другой Git repo)?
- 27. . Net SQL Server Connection String - скрыть пароль от других разработчиков
- 28. Как защитить багажник от разработчиков
- 29. Как скрыть данные RuntimeException от клиента EJB?
- 30. sailsjs удалить конфиденциальные данные после проверки
Не хранить конфиденциальные данные в SVN, возможно? Храните пароли и другую подобную информацию в файлах конфигурации, которые не передаются в репозиторий. –
Просто создайте пример конфигурации и добавьте только важные данные на рабочий сервер. Так, например, в svn у вас есть файл config.php.example, а в процессе производства вы копируете этот файл в config.php – Perry