В SQL-инъекцию играли так называемые хакерские мастера этих уровней, и выяснилось, что большинство хакерских вторжений теперь основаны на SQL-инъекциях. Эй, кто поможет легко начать? Хорошо, давайте не будем говорить чепуху, теперь я. начните говорить, что если написать общую программу защиты от внедрения SQL. Общие HTTP-запросы - это не что иное, как получение и публикация, поэтому, пока мы фильтруем все недопустимые символы в сообщении или информацию о параметрах в запросе на получение в файле, мы можем Судите по реализации фильтрации информации HTTP-запроса. Подвержен ли он атаке с помощью SQL-инъекции?
Запрос на получение, передаваемый IIS в asp.dll, имеет форму строки. Когда данные передаются в Request.QueryString, анализатор asp анализирует информацию Request.QueryString, а затем разделяет содержимое каждого массива в соответствии с ним. "&" Данные перехватываются следующим образом:
Во-первых, мы определяем, что следующие символы не могут быть включены в запрос:
|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare
Каждый символ разделяется символом «|», а затем мы определяем полученную Request.QueryString. Конкретный код выглядит следующим образом:
dim sql_injdata.
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = разделение(SQL_Injdata, "|")
Если Request.QueryString<>"" Тогда
Для каждого SQL_Get в Request.QueryString
Для SQL_Data=0 к Ubound(SQL_inj)
если instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Тогда
Response.Write "<Script Language=****>alert('Подсказка универсальной системы защиты от внедрения SQL World Movie Alliance SQL ↓nn Пожалуйста, не включайте недопустимые символы в параметры и попробуйте внедрить!'); History.back(- 1)</ Сценарий>"
Ответ.конец
конец, если
следующий
Следующий
Конец, если
Таким образом мы реализовали инъекционный перехват get-запросов, но нам еще нужно фильтровать post-запросы, поэтому нам придется продолжать рассматривать request.form, который тоже существует в виде массива. Нам нужно только сделать еще один. циклическое суждение. Код следующий:
Если Request.Form<>"" Тогда
Для каждого Sql_Post в Request.Form
Для SQL_Data=0 к Ubound(SQL_inj)
если instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Тогда
Response.Write "<Script Language=****>alert('World Movie Alliance SQL Universal Anti-Injection System Prompt ↓nn Пожалуйста, не включайте недопустимые символы в параметры и попробуйте внедрить! nnHTTP: //www.521movie. com '); History.back(-1)</Script>"
Ответ.конец
конец, если
следующий
следующий
конец, если
Хорошо, все готово. Мы реализовали перехват информации для запросов на получение и отправку. Вам нужно только сослаться на эту страницу перед открытием файла базы данных, такого как conn.asp. Вы можете продолжать разработку своей программы, не беспокоясь о том, не подвергнетесь ли вы снова атаке с помощью SQL-инъекции. Не так ли?