SQL-инъекция. Внедрение SQL кода часть 1
Экранирование о котором вы могли не знать. Порядок выполнения действий
Экранирование Первая часть этой статьи будет посвящена экранированию. Возьмем для примера UPDATE xml в базе данных. У нас имеется таблица TABLE, в которой есть колонки ID и XMLTEXT и нам надо обновить текст xml. Выглядит она вот так: <?xml version=’1.0’ encoding=’UTF-8’?> <a> <\a> Суть xml нам не интересна, нам важны кавычки. Как вы знаете из предыдущих наших статей, UPDATE пишется следующим образом: UPDATE TABLE SET XMLTEXT = ‘<?xml version=’1.0’ encoding=’UTF-8’?> <a> <\a>’ WHERE ID = 1 Но тут возникает проблема, ведь строка заканчивается здесь: ‘<?xml version=’ т...
Защита базы данных. Защита от SQL-инъекций
Неэффективные способы защиты от SQL-инъекций Если вы не обеспечиваете защиту от SQL инъекций и передаете данные, полученные от пользователя, непосредственно в SQL запрос, это считается наиболее опасным и нежелательным подходом. Так делать нельзя! Необходимо всегда проводить фильтрацию и/или валидацию любых данных перед их использованием в SQL-запросе. Функция htmlspecialchars() Функция htmlspecialchars() представляет опасность, поскольку она не экранирует опасные символы, такие как слеш (\), null-байт (\0) и backspace (\b)...