Сценарий электронной почты ASP

У меня есть форма, с помощью которой я проверяю эти данные, и мне интересно, нужно ли мне дезинфицировать данные ТОЛЬКО для отправки электронного письма? Электронное письмо будет отправлено на предварительно определенный адрес электронной почты. В основном форма просто запрашивает имя, адрес электронной почты (человека, использующего форму) и 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
%>

ПРИМЕЧАНИЕ: при этом НЕ используется какая-либо база данных или что-то в этом роде...

Также этот скрипт вызывается через AJAX, если это имеет значение...


person user1470118    schedule 23.01.2014    source источник


Ответы (1)


всегда используйте Server.HTMLEncode при отображении опубликованных пользователем данных в HTML. В этом случае вы помещаете его в HTMLBody электронного письма, поэтому я определенно HTMLEncode:

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

и т. д. Это позволяет избежать возможности публиковать уязвимые вещи, такие как Javascript, поскольку они могут выполняться при открытии электронной почты.

person kloarubeek    schedule 23.01.2014
comment
Спасибо! Я думал, что для обеспечения безопасности может понадобиться что-то еще, но я не был уверен, нужно ли это. Все учебники, которые я видел, были посвящены безопасности баз данных, что на самом деле не имело значения. - person user1470118; 24.01.2014
comment
Действительно, в этом случае можно не беспокоиться о SQL-инъекциях :-) - person kloarubeek; 24.01.2014