Каким образом ORM защищает от SQL-инъекций на уровне формирования параметризованных запросов?

ORM передаёт SQL-шаблон и значения отдельно через параметры драйвера. Пользовательский ввод остаётся данными, а не частью синтаксиса SQL, если не использовать небезопасную строковую сборку.

Короткий ответ

Что ответить на собеседовании

ORM передаёт SQL-шаблон и значения отдельно через параметры драйвера. Пользовательский ввод остаётся данными, а не частью синтаксиса SQL, если не использовать небезопасную строковую сборку.

Подробный разбор

Ответ с пояснениями

ORM передаёт SQL-шаблон и значения отдельно через параметры драйвера. Пользовательский ввод остаётся данными, а не частью синтаксиса SQL, если не использовать небезопасную строковую сборку.

Например, фильтр по имени должен создавать условие с placeholder, а само имя — передаваться отдельным значением. Кавычки или SQL-ключевые слова внутри значения не меняют структуру запроса. Но ORM не защищает автоматически raw SQL, f-строки и произвольные имена таблиц или сортировки. Идентификаторы обычно нельзя подставить как обычный параметр: их выбирают из разрешённого списка. Дополнительно ограничивают права подключения к БД.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее