В этой статье мы рассмотрим что такое SQL инъекция, если вы не знаете что это, то вам сюда.
Также посмотрите одну статью, в которой вы узнаете что такое в целом SQL:
Что такое SQL инъекция:
Это один из типов хакерских атак, суть которых заключается встраивание в SQL вредоносного кода, это пожалуй один из самых распространённых типов атак.
Обычно инъекция внедряется через форму, например во время ввода логина или пароля.
Пример SQL инъекций:
Для наглядности покажу не большой пример SQL инъекции, сначала, будет пример как должен выглядеть без внедрённого кода.
1 | SELECT * FROM news WHERE id_news = 5 |
Тут мы просто получаем, новость по идентификатору номером пять, все данные о нём, по сути вместо пяти может быть переменная, которой присвоили значение из формы.
Вот пример уже где мы встраиваем инъекцию в код.
1 | SELECT * FROM news WHERE id_news = -1 OR 1=1 |
В этом коде мы получаем не конкретную новость, а абсолютно все которые есть, но это только самое безобидный способ использования, но таким образом можно получать и важные данные или даже удалять их.
Типы SQL инъекции:
- Наиболее простой способ это сворачивание условия
WHERE
к истинностному результату при любых значениях параметров; - Присоединение к запросу другого запроса. Делается это через оператор
UNION
; - За комментирование части запроса;
Как защитится от всех этих типов в языке программирования PHP, прочитайте статью «Защита формы на языке программирования PHP», также там ещё написано и про защиту от XSS атак.
Примечание:
Про XSS атаки вы сможете прочитать в статье: «Что такое XSS атака».
Вывод:
В этой короткой статье вы прочитали что такое SQL инъекция, она была короткая, но это только потому-что, тут почти не чего объяснять.