usuario - Cómo proteger la contraseña en el código c#cliente de correo electrónico
wcf security (2)
Estoy construyendo un sitio web para la compañía de mi hermano. El elemento más importante en el sitio web es la función de correo. Es importante que los visitantes puedan enviar correos electrónicos a mi hermano usando ese sistema. Entonces usé este código:
message.From = new MailAddress("[email protected]");
message.To.Add(new MailAddress("emailaddress"));
message.CC.Add(new MailAddress("emailaddress"));
SmtpClient client = new SmtpClient("smtp.live.com", 587);
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential("emailaddress","password");
client.Send(message);
El código funciona bien, pero hay un problema: necesito completar mi contraseña y no quiero hacer eso. ¿Hay alguna manera de usar algo como hashes MD5 (u otro tipo de cifrado) u otra cosa para asegurar mi contraseña?
Los detalles para los objetos de correo smtp de System.Net
se pueden configurar en la aplicación.config o web.config
http://msdn.microsoft.com/en-us/library/w355a94k(v=vs.90).aspx
SI configura su contraseña en el archivo de configuración, puede cifrar esa sección para evitar la lectura superficial de su contraseña. Pero, en última instancia, la contraseña debe proporcionarse como una cadena.
SMTP (protocolo de correo electrónico subyacente) requiere que la contraseña se proporcione en texto sin formato.
Ya está asegurando el canal de comunicación, lo que debería evitar la interceptación de la contraseña del correo electrónico en el cable.
Puede colocar la contraseña en sí misma en un elemento cifrado de web.config para protegerlo en reposo.
Finalmente, considere una cuenta utilizada solo para este propósito. Reenviar el correo electrónico desde esa cuenta a la cuenta de su hermano. Si la contraseña está en peligro, elimine la cuenta y cree una nueva cuenta de reenvío.