Параметризованный запрос
Что такое Параметризованный запрос?
Параметризованный запросЗапрос к БД, значения которого передаются отдельно от текста SQL через плейсхолдеры, что не позволяет пользовательскому вводу изменять структуру запроса.
Параметризованный запрос (prepared statement) позволяет заранее скомпилировать SQL-шаблон с плейсхолдерами вроде «?» или «:id» и затем привязать к ним значения. Движок БД трактует параметры строго как данные, а не как часть SQL-синтаксиса, поэтому ввод с кавычками, точками с запятой или комментариями не может изменить логику запроса. Это канонический способ защиты от SQL-инъекций (CWE-89), поддерживаемый практически всеми драйверами и ORM. Параметризованные запросы должны быть значением по умолчанию для любого SQL с недоверенными данными, дополняясь учётными записями БД с минимальными правами, валидацией по allow-list и безопасными ORM-API для динамических идентификаторов.
● Примеры
- 01
Использование 'SELECT * FROM users WHERE id = ?' со связанным целым параметром вместо конкатенации идентификатора.
- 02
Именованные параметры в PDO или psycopg со словарём значений вместо форматирования строки.
● Частые вопросы
Что такое Параметризованный запрос?
Запрос к БД, значения которого передаются отдельно от текста SQL через плейсхолдеры, что не позволяет пользовательскому вводу изменять структуру запроса. Относится к категории Безопасность приложений в кибербезопасности.
Что означает Параметризованный запрос?
Запрос к БД, значения которого передаются отдельно от текста SQL через плейсхолдеры, что не позволяет пользовательскому вводу изменять структуру запроса.
Как защититься от Параметризованный запрос?
Защита от Параметризованный запрос обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Параметризованный запрос?
Распространённые альтернативные названия: Подготовленный запрос, Запрос со связанными параметрами.