Asp classic ASP电子邮件脚本

Asp classic ASP电子邮件脚本,asp-classic,sanitization,Asp Classic,Sanitization,我有一个表单,我用它来验证数据,我想知道的是,我是否需要清理数据以发送电子邮件?电子邮件将发送到预定义的电子邮件地址。基本上,表单只要求提供姓名、电子邮件(使用表单的人)和url 然后将其发送到预定义的电子邮件地址。这样的东西安全吗?使用以下简单的ASP页面是否易受攻击: <% dim objMessage dim FullName FullName=Request.QueryString("name") dim email email=Request.QueryString("

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

然后将其发送到预定义的电子邮件地址。这样的东西安全吗?使用以下简单的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调用的,如果这很重要的话…

在用HTML显示用户发布的数据时始终使用Server.HTMLEncode。在本例中,您将其放在电子邮件的HTMLBody中,因此我肯定会使用HTMLEncode:

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

等。这样就避免了发布易受攻击的东西(如Javascript)的可能性,因为打开电子邮件时可能会执行这些东西。

谢谢!我想它可能需要更多的东西来确保安全,但我不确定是否有必要。我看到的所有教程都是关于数据库安全的,这与实际无关。实际上,在本例中,您不必担心SQL注入:-)