我有一个表单,我验证了数据,以及我想知道的是,我是否需要清理数据以发送电子邮件?电子邮件将发送到预定义的电子邮件地址。基本上,表格只是要求提供姓名,电子邮件(使用表格的人)和网址。
然后将其发送到预定义的电子邮件地址。这样安全到足以使用吗?是否容易使用像这样的简单ASP页面:
<%
dim objMessage
dim FullName
FullName=Request.QueryString("name")
dim email
email=Request.QueryString("email")
dim videourl
videourl=Request.QueryString("video")
dim txtMessage
txtMessage="<b><br><br>Name: " & FullName & "<br>Email: " & email & "<br><br>Video URL: " & videourl
objMessage = CreateObject("CDO.Message")
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.Subject = "qContest Submission"
objMessage.From = email
objMessage.To = "predefined@email.org"
objMessage.HTMLBody = txtMessage
objMessage.Send
%>
注意:这不是使用任何数据库或类似的东西......
此脚本也是通过AJAX调用的,如果这很重要......
答案 0 :(得分:3)
在showig用户发布的HTML数据时始终使用Server.HTMLEncode。在这种情况下,你把它放在电子邮件的HTMLBody中,所以我肯定会HTMLEncode:
FullName = Server.HTMLEncode(Request.QueryString("name"))
等。这样就可以避免发布像Javascript这样的易受攻击的东西,因为打开电子邮件时可以执行这些操作。