Разработка веб-сайтов ASP с помощью Dreamweaver проста и удобна в использовании. Новички могут за короткое время создать динамический веб-сайт, который будет выглядеть идеально. С точки зрения функций новички также могут делать то, что могут делать ветераны. Так нет ли разницы между новичками и ветеранами? Разница здесь огромна, но непрофессионалу ее сложно увидеть с первого взгляда. Удобство интерфейса, быстродействие и безопасность сайта – три основных момента, которые отличают новичков от опытных пользователей.
С точки зрения безопасности, новички чаще всего упускают из виду проблему, связанную с SQL-инъекцией. Используя NBSI 2.0 для сканирования некоторых веб-сайтов ASP в Интернете, вы можете обнаружить, что многие веб-сайты ASP имеют уязвимости внедрения SQL.
Так называемая SQL-инъекция предназначена для использования лазеек в конструкции, таких как небрежность программистов или необнаружение законности вводимых пользователем данных, преднамеренной отправки специального кода (команд SQL) от клиента и сбора информации о программе и сервере. атака с целью получения желаемой информации.
Видно, что основная причина успеха атак с использованием Sql-инъекций заключается в том, что данные, введенные пользователем, не проверяются, а команды Sql могут генерироваться динамически из клиента.
Общие HTTP-запросы — это не что иное, как получение и публикация, поэтому, пока мы фильтруем недопустимые символы в информации о параметрах всех запросов на публикацию или получение в программе, мы можем предотвратить атаки SQL-инъекций.
К сожалению, DW не предоставляет соответствующего кода, поэтому, если вы хотите предотвратить атаки с использованием SQL-инъекций, вам необходимо изменить его вручную.
Просто сохраните следующую программу как SQLinjection.asp, а затем вызовите ее в заголовке страницы, которая должна предотвратить внедрение.
<!--#Include File=SQLinjection.asp-->
Это предотвратит внедрение на страницу.
Если вы хотите, чтобы весь сайт не был отмечен, добавьте вызов заголовка к файлу подключения к базе данных в каталоге Connections, созданному DW, или напрямую добавьте следующий программный код. Следует отметить, что при добавлении в файл подключения к базе данных вы должны: может добавлять статьи в фоновой форме. При ожидании контента, если встретится оператор SQL, система примет его за атаку SQL и выдаст сообщение об ошибке.
Общий код программы (цитата из Интернета с соответствующими изменениями) следующий:
<%
'--------Часть определения------------------
тусклый sql_injdata
SQL_injdata = '|и|exec|вставить|выбрать|удалить
|обновить|число|*|%|chr|mid|master|truncate|char
|объявить|1=1|1=2|;
SQL_inj = разделение (SQL_Injdata, |
'--------POST-часть------------------
Если Request.QueryString<> Тогда
Для каждого SQL_Get в Request.QueryString
Для SQL_Data=0 к Ubound(SQL_inj)
если instr(Request.QueryString(SQL_Get),
Sql_Inj(Sql_DATA))>0 Тогда
Response.Write <Язык сценария=JavaScript>
alert('Система предложит вам!/n/nПожалуйста, не добавляйте недопустимые символы в параметры и попробуйте ввести!/n/n');window.location=&'&index.htm&'&;</Script>
Ответ.конец
конец, если
следующий
Следующий
Конец, если
'--------GET часть------------------
Если Запрос.Форма<> Тогда
Для каждого Sql_Post в Request.Form
Для SQL_Data=0 к Ubound(SQL_inj)
если instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Тогда
Response.Write <Язык сценария=JavaScript>
alert('Система предложит вам!/n/nПожалуйста, не добавляйте недопустимые символы в параметры и попробуйте ввести!/n/n');window.location=&'&index.htm&'&;</Script>
Ответ.конец
конец, если
следующий
следующий
конец, если
%>
С помощью вышеуказанной программы вы можете противостоять опасным символам SQL-инъекций, отправленным с помощью метода Get или Post, и предупредить злоумышленника, а затем перенаправить его на index.htm (домашнюю страницу).