RTFM! статьи, советы, скрипты
::Заработок с помощью сайта ::JScript по-русски! ::Все русские мануалы::
МЕНЮ
О САЙТЕ
НОВОСТИ
СТАТЬИ
КНИГИ
АППЛЕТЫ
СВЯЗЬ

СЧЕТЧИКИ
Rambler's Top100
Рейтинг@Mail.ru
Яндекс цитирования

Выполняем свой SQL запрос в форме

Автор: PIG Killer Сайт: http://www.nsd.ru/     Рейтинг: N/A из 7       <<НАЗАД
   
   Отсутствие фильтрации ';' приводит к уязвимости защиты в формах, которые обрабатываются 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 сервер исполнит обе команды.
   
   Для устранения уязвимости нужно при принятии от пользователя запроса нужно разрешать только алфавитно-цифровые символы и обязательно исключать специальные символы типа ';'.
   


<<НАЗАД      ОЦЕНИТЬ СТАТЬЮ    ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :  раз.




пейкюлю



 
 
 
 
 
pauk ©® 2000-2015. All rights reserved.
При перепечатке ссылка на сайт и указание обязательны.
Мнение администрации сайта не всегда совпадает с мнением автора.
Орфография и пунктуация - авторские.
Администрация не несет никакой ответственности за использование материалов.
.
Protected by Copyscape DMCA Takedown Notice Infringement Search Tool