SQL-ін'єкція (SQLi) це вразливість, коли ввід користувача потрапляє в запит до бази даних як частина коду, а не як дані. Атакуючий вписує в поле конструкцію, яка закриває ваш запит і додає свій. Це CWE-89, класична складова категорії Injection в OWASP Top 10.
Як це зустрічається на практиці
Вразливості з ін'єкцією знаходять автоматичні сканери за хвилини, тому шукатимуть їх навіть у проєкті без жодного відвідувача. Найчастіше це поля пошуку, форми логіну й будь-який параметр, що склеюється в запит рядком.
Приклад
У поле імені атакуючий вписує:
Якщо застосунок склеює запит без параметризації, база віддасть усі рядки таблиці, часто разом із хешами паролів.
Як захиститись
Тільки параметризовані запити або ORM. Ніколи не склеюйте рядок запиту конкатенацією з користувацьким вводом. Це закриває проблему повністю, а не частково.
