Если приложение превращает ввод пользователя в часть SQL-кода, злоумышленник может изменить смысл запроса: прочитать чужие данные, обойти проверку или выполнить опасную операцию.
Основная защита — параметризованные запросы, минимальные права учётной записи БД, безопасные ORM-паттерны, валидация и тесты; WAF используют как дополнительный слой.
Вместо строки `SELECT ... WHERE id=` с добавленным параметром разработчик использует prepared statement, где значение передаётся отдельно и не интерпретируется как SQL.
Оно зависит от контекста и СУБД; предпочтительны параметризованные запросы и запрет динамического SQL.
ORM исключает SQL-инъекции?Нет, если используются сырые запросы, небезопасная интерполяция или динамические части запроса.
Как проверить исправление?Повторить исходный сценарий, добавить автоматический негативный тест и проверить минимальные права БД.