我的崩溃记者通过谷歌smtp和端口587发送日志。我不知道如何有人获得密码并多次尝试登录该帐户。
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.Credentials = new System.Net.NetworkCredential("senderemail@gmail.com", "password");
client.EnableSsl = true;
client.Send(message);
将来是否有办法防止这种情况发生?我已经在这里使用SSL并且我混淆了exe文件。
答案 0 :(得分:3)
不,没有办法隐藏"您提供给用户的代码中的秘密。
请求用户在用户帐户下发送信息,或者让服务器使用服务器端代码接受您要发送的任何信息并从那里处理/重新发送。
答案 1 :(得分:1)
您可以使用Windows Data Protection在系统上本地隐藏机密。首次安装应用程序时 - 您设置密钥并在本地加密。这样,值永远不会存储在代码本身中。 https://msdn.microsoft.com/en-us/library/ms995355.aspx
答案 2 :(得分:1)
最安全的方法是创建自己的电子邮件服务。创建一个用于发送电子邮件的API,而不是直接从您的应用发送电子邮件。使用API密钥调用您的电子邮件API。并将您的用户名和密码移动到您的web.config文件中。