Мое приложение - ruby-on-rails, но я ожидаю, что любые ответы на этот вопрос, вероятно, не будут зависеть от фреймворка.
Мое приложение отправляет электронные письма через SMTP gmail с помощью rails ActionMailers а-ля:
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.
Итак, какие существуют стратегии для защиты пароля для стороннего сервиса?
В конечном счете, имя пользователя и пароль даже не принадлежат мне, они будут принадлежать конечному пользователю приложения.