Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Еще пару слов о безопасности


Visual Basic: новости сайтов, советы, примеры кодов

VBNet.Ru
Выпуск от Павла Сурменка



Еще пару слов о безопасности

На днях Артем Кривокрисенко опубликовал информацию о методах защиты против «Like Injection». Признаюсь, о таком типе атак я даже не думал :) В свое оправдание могу сказать только, что проблематично придумать ситуацию, в которой эксплуатация этой штуки злоумышленником могла бы принести вред, во всяком случае я такого сценария пока не придумал. Но вот сделать менее удобной работу обычных пользователей – вполне. Поэтому будем иметь в виду.

 

Like Injection

Вы знаете, что такое SQL Injection, знаете какой вред он может нанести базе данных, используете только параметризированые запросы, а если необходимо выполнять конкатенцию, то, конечно, заменяете недопустимые символы? И думаете что ваше приложение безопасно? Гм, я бы так не думал...

Оказывается, есть еще одна дырка. Не такая опасная, как SQL Injection, тем не менее, дырка.

Итак вот ваш SQL-запрос:

SELECT * FROM Users WHERE UserName Like UserName + '%'

Все логично. Человек вводит "Art", при конкатенции получаем "Art%" запрос ищет всех пользователей, чье имя начинается на Art. Ничего криминального.

Верно?

Неверно.

Пользователю не интересны пользователи, чьи имена начинаются на "Art". Его больше интерисуют те, чьи имена начинаются на "%WAZZZZUP". Этот текст я и ввожу в программу. А что она ищет? Ищет полный бред - выдаст всех пользователей, у которых в имени есть "WAZZUP". В результате клиенты несут убытки из-за непредсказуемо работающего ПО, компания-разрабочтик выплачивает огромные неустойки.

Что же делать?

А делать нужно совсем немного - всего лишь несколько замен символов:

символ...

...меняем на

[

[[]

%

[%]

_

[_]

Вот, собственно, и все.

Артем Кривокрисенко

 

В этой рассылке я публикую то, что считаю интересным (для себя в первую очередь) и полезным (для вас в первую очередь :) ). Но хотелось бы услышать ваше мнение – что бы вы хотели видеть в рассылке? Какие вопросы нужно осветить подробнее, на что обратить внимание? Пишите: pavel@vbnet.ru , ICQ: 326066673

 

 

Павел Сурменок

VBNet

Web Reflection

 


В избранное