Що означає «SQL injection»?
SQL Injection (SQL-ін'єкція) - це вразливість, за якої зловмисник вставляє в запит шкідливий SQL-код, щоб отримати доступ до даних чи змінити їх.
Простіше кажучи, коли програма не фільтрує введені користувачем дані, хакер може «дописати» свій SQL-запит прямо у форму чи URL.
Приклад небезпечного коду
sql
query = "SELECT * FROM users WHERE login = '" + user_input + "'";Якщо користувач введе:
javascript
' OR '1'='1Запит стане:
sql
SELECT * FROM users WHERE login = '' OR '1'='1';- і поверне всі записи з таблиці
users.
SQL-ін'єкції дозволяють:
- отримати логіни й паролі,
- видалити дані (
DROP TABLE), - змінити права доступу.
Щоб захиститися, потрібно використовувати:
- підготовлені вирази (prepared statements),
- параметризовані запити,
- перевірку й екранування введених даних.
Підсумок: SQL-ін'єкція - це втручання в запит через введені дані, яке може призвести до злому бази.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.