Средний
Как защититься от SQL Injection с помощью Prepared Statements?
Prepared Statements (Параметризованные запросы) — это главный способ защиты от SQL-инъекций.
Вместо конкатенации строк (склеивания SQL-кода и ввода юзера), запрос отправляется в БД в два этапа:
1. Подготовка: Отправляется шаблон запроса: SELECT * FROM users WHERE login = ? AND password = ?.
2. Выполнение: Отдельно отправляются параметры (логин и пароль).
СУБД жестко компилирует шаблон. Даже если юзер введет в пароль 1' OR '1'='1, СУБД воспримет это просто как текстовую строку, а не как исполняемый SQL-код.