Недавно, из-за модификации программы ASP (которая имеет уязвимость SQL-инъекции), я нашел в Интернете множество соответствующих методов предотвращения, но ни один из них не оказался удовлетворительным, поэтому я всесторонне улучшил некоторые методы в Интернете и написал это. Функция ASP. Для справки.
Вот цитата:
Функция SafeRequest(ParaName)
Тусклое паразначение
ПараЗначение=Запрос(ИмяПараметра)
если IsNumeric(ParaValue) = True, тогда
SafeRequest=Паразначение
выход из функции
elseIf Instr(LCase(ParaValue),"select ") > 0 или Instr(LCase(ParaValue),"insert ") > 0 или Instr(LCase(ParaValue),"delete from") > 0 или Instr(LCase(ParaValue) ,"count() > 0 или Instr(LCase(ParaValue),"drop table") > 0 или Instr(LCase(ParaValue),"update ") > 0 или Instr(LCase(ParaValue),"truncate") > 0 или Instr(LCase(ParaValue),"asc() > 0 или Instr(LCase(ParaValue),"mid() > 0 или Instr(LCase(ParaValue),"char() > 0 или Instr(LCase (ParaValue), "xp_cmdshell") > 0 или Instr(LCase(ParaValue),"exec master") > 0 или Instr(LCase(ParaValue),"сетевые администраторы локальной группы") > 0 или Instr(LCase(ParaValue)," и ") > 0 или Instr(LCase(ParaValue),"net user") > 0 или Instr(LCase(ParaValue)," или ") > 0, тогда
Response.Write "<script Language='javascript'>"
Response.Write "alert('Незаконный запрос!');" Обнаружено сообщение с подсказкой об атаке SQL-инъекцией
Response.Write "location.href='http://blog.downcodes.com/';' Обнаружен URL-адрес перенаправления атаки SQL-инъекцией.
Response.Write "<script>"
Ответ.конец
еще
SafeRequest=Паразначение
Конец, если
Функция End
заменяет ваш запрос функцией SafeRequest.