Mi aplicación es ruby-on-rails, pero espero que cualquier respuesta a esta pregunta sea independiente del marco.Almacenamiento de contraseñas para servicios de terceros
Mi aplicación envía mensajes de correo electrónico a través de SMTP Gmail utilizando rieles ActionMailers a-la:
mail = MyActionMailerSubclass.setup_email
options = { :address => "smtp.gmail.com",
:port => 587,
:domain => 'mydomain.com',
:user_name => '[email protected]',
:password => '[email protected]$w0rd',
:authentication => 'plain',
:enable_starttls_auto => true }
mail.delivery_method :smtp, options
mail.deliver
Ok, eso es genial ... no es mi contraseña para Gmail en texto plano en el código de la aplicación. O podría almacenarlo en la base de datos en texto plano. Obviamente, ambos son inaceptables.
Salting y hashing, la técnica habitual no funcionará aquí porque necesito enviar la contraseña a gmail.
Entonces, ¿qué estrategias hay para asegurar una contraseña para un servicio de terceros?
En última instancia, ese nombre de usuario y contraseña ni siquiera me pertenecen, pertenecerán al usuario final de la aplicación.
Gracias Ryan, eso ayuda en el caso donde otros codificadores están involucrados. Mi verdadera preocupación es que el usuario final haga el correo electrónico desde su cuenta. Entonces necesito una forma para que ellos almacenen sus credenciales. – SooDesuNe
Ese enfoque ayudará al OP a ocultar su * propia * contraseña de los usuarios de código abierto. Creo que lo que más le preocupa es que tendrá que almacenar * sus * contraseñas de usuarios en su servidor en texto plano, y no quiere la responsabilidad. – mgiuca