Skip to main content

Що означає «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

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.