Передаёт значения через параметры драйвера, не экранируя их вручную
Зачем
Зачем это нужно
Выбирает колонку и направление сортировки из заранее разрешённого списка
Ограничивает права соединения, уменьшая ущерб при пропущенной ошибке
Вопросы
Частые вопросы
ORM полностью исключает SQL-инъекции?
Безопасные методы ORM обычно параметризуют значения, но сырой SQL, ручные фрагменты order by и динамические условия возвращают риск. Модель проследит места выхода из безопасного API. Нельзя считать запрос защищённым только потому, что вокруг него используется ORM в других строках.
Почему нельзя просто заменить кавычки?
Диалекты, кодировки и контексты сложнее одной кавычки, а ручное экранирование легко обходится. Драйвер передаёт значение отдельно от текста запроса, поэтому база не интерпретирует его как код. Модель сохранит тип параметра и не будет собирать собственный алгоритм очистки строк.
Как параметризовать имя таблицы или колонки?
Обычный параметр предназначен для значения, не для синтаксиса. Структурное имя выбирают из белого списка, заданного кодом, и никогда не вставляют произвольную строку пользователя. Модель построит отображение от безопасного ключа интерфейса к конкретному известному идентификатору базы.
Рядом
Соседние страницы каталога
Дальше — весь каталог задач: поиск по названию, темы и фильтры.