Как защитить учетные данные базы данных в database.yml - PullRequest
4 голосов
/ 16 января 2012

Как защитить учетные данные подключения, которые используются в config/database.yml. Как защитить имя пользователя, пароль, информацию о хосте для моих настроек БД.

local: &local
  adapter: mysql2
  encoding: utf8
  reconnect: false
  username: foo
  password: bar
  host: localhost

1 Ответ

6 голосов
/ 16 января 2012

Ты не. В какой-то момент вы должны вставить этот материал, и он должен быть в открытом виде.

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

Я обошел это, имея собственную задачу capistrano, которая копирует (или символические ссылки) database.yml из домашнего каталога сервера в приложение. (Так что в моем репозитории есть пустой database.yml, и он перезаписывается всякий раз, когда я публикую новую версию с секретной версией, которая уже присутствует на сервере)

Я писал об этом здесь: http://www.tigraine.at/2011/09/25/securely-managing-database-yml-when-deploying-with-capistrano/

Что касается того, чтобы не делиться этим во время разработки: просто поместите database.yml в свой .gitignore, и он не будет зафиксирован

...