2014-01-23 4 views
1

데이터를 검증하는 양식이 있습니다. 궁금한 점은 이메일을 보내려면 데이터를 위생해야합니까? 전자 메일은 미리 정의 된 전자 메일 주소로 전송됩니다. 기본적으로 양식은 이름, 이메일 (양식을 사용하는 사람의 이름) 및 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 = "[email protected]" 
objMessage.HTMLBody = txtMessage 
objMessage.Send 
%> 

참고 : 그것은 취약이 같은 간단한 ASP 페이지를 사용하는 것입니다이 같은 데이터베이스 또는 아무것도를 사용하지 않는 ... 또한이 스크립트가 AJAX를 통해 호출되는

을 경우 중요한 점은 ...

답변

3

HTML에서 사용자 게시 데이터를 표시 할 때는 항상 Server.HTMLEncode를 사용하십시오. 이 경우에는 이메일의에서는 HTMLBody에 넣어, 그래서 나는 확실히 대해 HTMLEncode 것 :

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

등이 이메일을 열 때 실행 될 수 있기 때문에 자바 스크립트와 같은 취약한 물건을 게시 할 수있는 가능성을 방지 할 수 있습니다.

+0

감사합니다. 보안을 강화하기 위해 더 많은 물건이 필요할 것이라고 생각했지만, 필요한지 확실하지 않았습니다. 내가 본 모든 튜토리얼은 데이터베이스 보안과 관련이 없습니다. – user1470118

+0

사실,이 경우 SQL 인젝션에 대해 걱정할 필요가 없습니다 :-) – kloarubeek