Отсутствие фильтрации ';' приводит к уязвимости защиты в формах, которые обрабатываются SQL server-ом. Уязвимость защиты найдена в возможности, которая возникает в некоторых страницах, не фильтрующих поля SQL на наличие опасных символов, что позволяет нападавшим заставлять сервер выполнять произвольные команды базы данных. Большинство доступных через сеть форм уязвимы к этой проблеме неочистки ввода, которая входит в запрос базы данных. Пример: Создаем форму, и затем помещаем в User ID field. Пример кода: <% dim lngUserID dim lngPassword strUserID = request("txtUserID") dim adoConn dim adors set adoConn = server.CreateObject("ADODB.connection") set adors = server.CreateObject("ADODB.Recordset") adoConn.open Application("conDOTS_ConnectionString") strSQL = "Select * from tblUsers where User_Id = "&strUSerID adors.Open strSQL, adoconn if not adors.eof then strEmail = adors("user_email") strPassword = adors("password") end if adors.close strSubject = "Password Request" strBody = "Your Password is:"&strPassword mailsent = fun_SendMail(strEmail,strEmail,strSubject,strBody) end if Session.abandon %> <body> <form ACTION="forgotpass.asp" METHOD="POST"> Please enter your user id: <input type="text" name="txtUserID"><br> <br> <input type="submit" value="Submit"> <input type="hidden" name="forgot" value="1"> </form> </body> </html> Теперь, если кто-нибудь добавит следующую строку в поле User ID: 12;exec sp_addlogin 'BadUser' то тогда SQL сервер исполнит обе команды. Для устранения уязвимости нужно при принятии от пользователя запроса нужно разрешать только алфавитно-цифровые символы и обязательно исключать специальные символы типа ';'. Автор: PIG Killer