Защита паролей в средах приложения Rails - PullRequest
0 голосов
/ 16 августа 2011

ТАК Я нашел этот приятный код для использования Gmail в качестве SMTP-сервера для приложения Rails:

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
 :address => "smtp.gmail.com",
 :port => 587,
 :domain => "google.com",
 :authentication => :login,
 :user_name => "<email address>",
 :password => "<password>",
 :enable_starttls_auto => true
}

Это потрясающе, но мне требуется аутентификация, поэтому мое имя пользователя и пароль появятся в хэше настроек.

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

Может ли кто-нибудь помочь с защитой этих значений от необходимости быть привязанными к моему CVS.

Ответы [ 2 ]

0 голосов
/ 16 августа 2011

Я ответил почти на этот же вопрос раньше прямо здесь .Короче говоря, настройте свои учетные данные как переменные среды, например:

config.action_mailer.smtp_settings = {
 :address => "smtp.gmail.com",
 :port => 587,
 :domain => "google.com",
 :authentication => :login,
 :user_name => ENV['EMAIL_USERNAME'],
 :password => ENV['EMAIL_PASSWORD'],
 :enable_starttls_auto => true
}
0 голосов
/ 16 августа 2011

Итак, я понял это (очевидно, я перебрал проблему):

 :user_name => IO.readlines('/some/path/secret_auth.txt')[0],
 :password => IO.readlines('/some/path/secret_auth.txt')[1]

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

А для @zabba - вы правы, вы можете (при условии, что вы можете получить доступ к экземпляру конфигурации rails).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...