2014-01-23 221 views
1

我有一个表单,我验证数据,我想知道的是,我需要清理数据只是发送电子邮件?电子邮件将被发送到预定义的电子邮件地址。基本上这个表单只是要求一个名字,电子邮件(使用表单的人)和一个网址。ASP电子邮件脚本

然后将其发送到预定义的电子邮件地址。是这样的安全吗?难道是容易用一个简单的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 = "[email protected]" 
objMessage.HTMLBody = txtMessage 
objMessage.Send 
%> 

注意:这是不使用任何数据库或类似的东西...

而且这个剧本正在通过AJAX调用,如果重要...

回答

3

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

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

等,这避免了后期如Javascript脆弱的东西,可以打开电子邮件时要执行的可能性。

+0

谢谢!我认为它可能需要更多的东西来保证它的安全,但我不确定是否有必要。我看到的所有教程都是关于数据库安全性的,这并不是真正相关的。 – user1470118

+0

事实上,在这种情况下,您不必担心SQL注入:-) – kloarubeek