Где вы храните пароли базы данных? - PullRequest
8 голосов
/ 04 февраля 2011

Как можно получить пароли базы данных и других сервисов из вашего кода?Я читал об использовании файлов свойств для каждого сервера, но когда у вас есть большое количество серверов, его становится сложно поддерживать.Я также видел решение, использующее процесс сборки CI для «ввода» паролей, но это затрудняет обновление пароля на лету.

Некоторые требования, помогающие сузить поле ответов ...

  1. В случае нарушения безопасности пароль должен легко изменяться и распространяться.
  2. Пароль не может появляться в коде (из-за пункта 1)
  3. Для человека должно быть «нетривиально» получить текстовую версию пароля
  4. Должно хорошо работать в веб-приложении и автономных приложениях
  5. Легко принять у разработчика приложенияточка зрения

Некоторые приятные вещи включают в себя отсутствие введения единой точки отказа, быстрое время разработки и простоту понимания.

По духу это похоже на этот вопрос , но с упором на ремонтопригодность и больше внимания на серверной части.

Ответы [ 3 ]

6 голосов
/ 04 февраля 2011

Вы можете сохранить его в виде простого текста в файле в защищенном каталоге, который может быть прочитан только той учетной записью, в которой запущено приложение.В случае веб-приложения вы всегда должны хранить пароль вне корневой веб-папки.

1 голос
/ 04 февраля 2011

Если вы используете пул соединений с базой данных, тогда имя пользователя, пароль и другие детали базы данных обычно управляются в веб-контейнере Java и представляются коду Java в качестве источника данных. Вы просто запрашиваете соединение с базой данных без необходимости знать какие-либо из этих деталей.

0 голосов
/ 10 июля 2013

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

...