【发布时间】:2015-12-26 18:27:16
【问题描述】:
我创建了一个联系表单,并为此表单设置了一个安全问题。
我已经对我的问题进行了一些研究,但我想在我犯任何错误之前仔细检查......
基本上,我在后面的代码中创建了我的联系表单,如下所示。
在那里,我必须包含我的电子邮件地址和密码才能连接到 smtp 服务器。
恐怕很容易找到我的凭据。
有人对如何保护此代码有建议吗? (或者我对这个解决方案有什么误解?)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Protected Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs)
Try
If Page.IsValid Then
Dim mailMessage As New MailMessage()
mailMessage.From = New MailAddress("MYEMAILADRESS")
mailMessage.To.Add("MYEMAILADRESS")
mailMessage.Subject = txtSubject.Text
mailMessage.Body = "<b>Sender Name : </b>" & txtName.Text & "<br/>" & "<b>Sender Email : </b>" & txtEmail.Text & "<br/>" & "<b>Phone </b>" & txtPhone.Text & "<br/>" & "<b>Comments : </b>" & txtComments.Text
mailMessage.IsBodyHtml = True
Dim smtpClient As New SmtpClient("smtp.gmail.com", 587)
smtpClient.EnableSsl = True
smtpClient.Credentials = New System.Net.NetworkCredential("MYEMAILADRESS", "PASSWORD")
smtpClient.Send(mailMessage)
Label.Text = "Thank you for contacting us"
txtName.Enabled = False
txtEmail.Enabled = False
txtComments.Enabled = False
txtSubject.Enabled = False
txtPhone.Enabled = False
Button.Enabled = False
End If
Catch ex As Exception
'Log - Event Viewer or table
Label.Text = "There is an unknown problem, please try later"
End Try
End Sub
【问题讨论】:
-
这是服务器端,它永远不会到达您的用户。另外,请考虑将其移至配置文件,而不是将值存储在代码中。
-
@WiktorZychla 虽然你说的是服务器端的说法是对的,但我绝对可以理解为什么有人不愿意以明文形式存储重要密码。
-
@Gray:当然,加密配置文件将是我的下一个建议,只要 OP 以某种方式解决这个问题。我不确定他们是否知道他们的凭据对用户来说是安全的。
-
非常感谢您的帮助!我现在就去做!
标签: asp.net security passwords