Противодействие неавторизованному доступу к серверу Web-приложений с использованием механизма подложных SQL-запросов - page 2

Модель взаимодействия между клиентом и сервером БД
Pass:<br> <asp:TextBox TextMode= Password
id= password runat= server /><br>
<input type= submit >
</form>
. . .
Затем в code behind файле:
. . .
string sqlQuery = "SELECT COUNT(*) FROM Users WHERE User-
Name= +username.Text+ AND Password= + password.Text +
SqlCommand sqlCmd = new SqlCommand(sqlQuery, sqlConn);
int userCount = (int)sqlCmd.ExecuteScalar();
if (1 == userCount)
{
// Авторизация пройдена успешно
. . .
}
. . .
Приведенный код выполняет динамический SQL-запрос к таблице
со списком пользователей и их паролями. Если результат запроса воз-
вращает 1, значит, пользователь с заданным именем и паролем суще-
ствует. Представим теперь, что в качестве имени пользователя введена
строка:
admin - -
Наш код сформирует следующий SQL-запрос:
SELECT COUNT(*) FROM Users WHERE UserName= admin - -
AND Password= password
Одинарная кавычка в имени пользователя закрывает ранее откры-
тую одинарную кавычку, а строка “- -” превращает в комментарий все,
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2006. № 3 75
1 3,4,5,6,7,8,9
Powered by FlippingBook