以安全的方式发送电子邮件

本文关键字:电子邮件 方式发 安全 | 更新日期: 2023-09-27 18:01:19

我想做一个简单的应用程序,将发送电子邮件。我使用MailMessageSmtpClient类。SmpClient需要登录和密码才能工作。

  • 在简单的字符串中编译带有登录/密码的应用程序是否安全?
  • 这是可能的拆卸这个,并获得密码吗?
  • 如何隐藏它从潜在的攻击者?
  • 是否可以不使用登录名/密码发送电子邮件?

以安全的方式发送电子邮件

是的,将密码以明文形式存储在应用程序中的任何地方都是不安全的。别这么做!

相反,你应该将密码加密后的存储在App.config文件中(或者在配置文件、machine. config中的其他地方)。配置例如):

加密和解密ApplicationConfigSections

或者您可以在运行时向用户询问凭据。

如果您想避免显式地提供密码,您可以通过当前登录用户的Windows身份验证进行身份验证。为此,您可以使用SmtpClient.UseDefaultCredentials发送邮件。当然,这只有在SmtpServer识别用户的windows凭据时才能工作。


如果您希望避免中间人攻击和数据包嗅探,则应该使用SSL来传输身份验证数据。您可以通过在配置中启用SSL或自己设置属性SmtpClient.EnableSsl来实现这一点。(.. NET>= 4.0)