REM ## длинное целочисленное преобразование
Functiontonum (s, по умолчанию)
Ifisnumeric (ы) и <> "" Тогда
tonum = clng (s)
Еще
тонум = дефолт
Эндиф
Конечная функция
REM ## SQL оператора преобразования
Functiontosql (str)
Ifisnull (str) thstr = ""
tosql = replace (str, "''", "'' ''")
Конечная функция
Пример:
DimSQL
DimStrwhere, Strname, Intage
strname = tosql (request ("user")))
интенсивность = тонум (запрос («возраст»), 20)
sql = "select*from [user]" & _
"Где [age]>" & strname & _
"И [username] = ''" & intage & "''"
Вообще говоря, благодаря рассмотрению двух вышеупомянутых функций можно устранить атаки инъекции SQL! Если вы считаете, что это необходимо, вы можете добавить замену для CHR (0) и изменить функцию ToSQL на следующее:
Functiontosql (str)
Ifisnull (str) thstr = ""
str = reply (str, chr (0), "")
tosql = replace (str, "''", "'' ''")
Конечная функция
Также обратите внимание:
***********************************************
Обнаружение внешних функций
Functioncheckurlrefer ()
Dimstrlocalurl, inturllen, strurlrefer
strlocalurl = "http://127.0.0.1"
inturllen = len (strlocalurl)
strurlrefer = lcase (request.servervariables ("http_referer") & "")
«Обнаружение того, поступает ли предыдущая страница из Strlocalurl
Ifleft (strurlrefer, inturllen) = strlocalurlthen
CHECKURLREFER = TRUE
Еще
CHECKURLREFER = FALSE
Эндиф
Конечная функция
***********************************************
Эта функция может помочь вам противостоять внешним тестам на инъекцию SQL, просто позвоните им в начале страницы.
Сделайте свою программу ASP более безопасной с двумя простыми небольшими функциями!
Добро пожаловать, чтобы исправить меня (пожалуйста, напишите метод, чтобы обойти эти две функции)!
Связанные страницы обсуждения:
http://community.csdn.net/expert/topicview.asp?id=3585010
http://community.csdn.net/expert/topicview.asp?id=3582230
http://community.csdn.net/expert/topic/3589/3589480.xml?temp=.4866449
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
Dimqs, Errc, iii
qs = request.servervariables ("Query_string")
Dimnothis (18)
ничего (0) = "netuser"