ASP电子邮件脚本

时间:2014-01-23 20:43:52

标签: asp-classic sanitization

我有一个表单,我验证了数据,以及我想知道的是,我是否需要清理数据以发送电子邮件?电子邮件将发送到预定义的电子邮件地址。基本上,表格只是要求提供姓名,电子邮件(使用表格的人)和网址。

然后将其发送到预定义的电子邮件地址。这样安全到足以使用吗?是否容易使用像这样的简单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调用的,如果这很重要......

1 个答案:

答案 0 :(得分:3)

在showig用户发布的HTML数据时始终使用Server.HTMLEncode。在这种情况下,你把它放在电子邮件的HTMLBody中,所以我肯定会HTMLEncode:

FullName = Server.HTMLEncode(Request.QueryString("name"))

等。这样就可以避免发布像Javascript这样的易受攻击的东西,因为打开电子邮件时可以执行这些操作。