9

メールを送信する簡単なアプリケーションを作成しようとしています。私はクラスを使用MailMessageします。動作するにはログインとパスワードが必要です。SmtpClientSmpClient

  • ログイン/パスワードを使用して単純な文字列でアプリケーションをコンパイルするのは安全ですか?
  • これを分解してパスワードを取得することは可能ですか?
  • 潜在的な攻撃者からそれを隠す方法は?
  • ログイン/パスワードを使用せずに電子メールを送信することは可能ですか?
4

1 に答える 1

7

はい、アプリケーションのどこかにパスワードをプレーンテキストで保存することは安全ではありません。しないでください!

代わりに、暗号化されたパスワードをApp.configファイル(または構成ファイルの別の場所、たとえばmachine.config)に保存する必要があります。

ApplicationConfigSectionsの暗号化と復号化

または、実行時にユーザーに資格情報を要求することもできます。

パスワードを明示的に指定しないようにする場合は、現在ログオンしているユーザーのWindows認証を介して認証できます。このためにあなたSmtpClient.UseDefaultCredentialsはメールを送るために使うことができます。もちろん、これはSmtpServerがユーザーのWindowsクレデンシャルを認識する場合にのみ機能します。


中間者攻撃やパケットスニッフィングから保護したい場合は、SSLを使用して認証データを送信する必要があります。これを行うには、構成でSSLを有効にするか、プロパティを自分で設定しますSmtpClient.EnableSsl。(.NET> = 4.0)

于 2013-02-27T15:37:56.237 に答える