以安全的方式发送电子邮件
本文关键字:电子邮件 方式发 安全 | 更新日期: 2023-09-27 18:01:19
我想做一个简单的应用程序,将发送电子邮件。我使用MailMessage
和SmtpClient
类。SmpClient
需要登录和密码才能工作。
- 在简单的字符串中编译带有登录/密码的应用程序是否安全?
- 这是可能的拆卸这个,并获得密码吗? 如何隐藏它从潜在的攻击者?
- 是否可以不使用登录名/密码发送电子邮件?
是的,将密码以明文形式存储在应用程序中的任何地方都是不安全的。别这么做!
相反,你应该将密码加密后的存储在App.config文件中(或者在配置文件、machine. config中的其他地方)。配置例如):加密和解密ApplicationConfigSections
或者您可以在运行时向用户询问凭据。
如果您想避免显式地提供密码,您可以通过当前登录用户的Windows身份验证进行身份验证。为此,您可以使用SmtpClient.UseDefaultCredentials
发送邮件。当然,这只有在SmtpServer识别用户的windows凭据时才能工作。
如果您希望避免中间人攻击和数据包嗅探,则应该使用SSL来传输身份验证数据。您可以通过在配置中启用SSL或自己设置属性SmtpClient.EnableSsl
来实现这一点。(.. NET>= 4.0)