Главная · Каталог задач · Исправление SQL-инъекции в запросе

Готовый сценарий

Исправление SQL-инъекции в запросе

Параметры защищают значения, но имя колонки и направление сортировки нельзя просто передать тем же способом. Модель разделит пользовательский ввод: значения уйдут в placeholders, а структурные варианты выберутся из фиксированного словаря. Учётная запись приложения получит только права, нужные этому сервису.

Попробуйте прямо здесь Отвечает Gemma 3 12B — модель подобрал сервис

Открыть в полном чате

  • Доступ без VPN
  • Русский интерфейс
  • Оплата рублями по факту

Зачем

Зачем это нужно

01

Передаёт значения через параметры драйвера, не экранируя их вручную

02

Выбирает колонку и направление сортировки из заранее разрешённого списка

03

Ограничивает права соединения, уменьшая ущерб при пропущенной ошибке

Вопросы

Частые вопросы

ORM полностью исключает SQL-инъекции?

Безопасные методы ORM обычно параметризуют значения, но сырой SQL, ручные фрагменты order by и динамические условия возвращают риск. Модель проследит места выхода из безопасного API. Нельзя считать запрос защищённым только потому, что вокруг него используется ORM в других строках.

Почему нельзя просто заменить кавычки?

Диалекты, кодировки и контексты сложнее одной кавычки, а ручное экранирование легко обходится. Драйвер передаёт значение отдельно от текста запроса, поэтому база не интерпретирует его как код. Модель сохранит тип параметра и не будет собирать собственный алгоритм очистки строк.

Как параметризовать имя таблицы или колонки?

Обычный параметр предназначен для значения, не для синтаксиса. Структурное имя выбирают из белого списка, заданного кодом, и никогда не вставляют произвольную строку пользователя. Модель построит отображение от безопасного ключа интерфейса к конкретному известному идентификатору базы.

Рядом

Дальше — весь каталог задач: поиск по названию, темы и фильтры.

Нужно больше

Весь Енотик — в одном окне

Полный чат: история, вложения, базы знаний, картинки и видео. Один баланс на все модели, оплата рублями по факту.