2014-01-23 150 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