Мое приложение - ruby-on-rails, но я ожидаю, что любые ответы на этот вопрос, вероятно, будут зависеть от структуры.
Мое приложение отправляет электронные письма через gmail SMTP с использованием rails ActionMailers a-la:
mail = MyActionMailerSubclass.setup_email
options = { :address => "smtp.gmail.com",
:port => 587,
:domain => 'mydomain.com',
:user_name => 'myuser@mydomain.com',
:password => 's3cur3p@s$w0rd',
:authentication => 'plain',
:enable_starttls_auto => true }
mail.delivery_method :smtp, options
mail.deliver
Хорошо, это здорово ... в коде приложения есть мой пароль для Gmail в виде обычного текста. Или я мог бы сохранить его в базе данных в виде обычного текста. Очевидно, оба неприемлемы.
Соление и хеширование, обычный метод здесь не работает, потому что мне нужно отправить пароль в Gmail.
Итак, Какие существуют стратегии для защиты пароля для сторонней службы?
В конечном итоге это имя пользователя и пароль даже не будут принадлежать мне, они будут принадлежать конечному пользователю приложения.