Back to questions
Principal
32
Что такое SQL-инъекция и как с ней бороться?
Companies where asked
Avosend
Answer from AI
sobes.tech AI
SQL-инъекция — это тип уязвимости, при которой злоумышленник вставляет вредоносный SQL-код в запросы к базе данных через пользовательский ввод. Это может привести к несанкционированному доступу, изменению или удалению данных.
Для борьбы с SQL-инъекциями применяют следующие методы:
- Использование параметризованных запросов (prepared statements) — параметры передаются отдельно от SQL-кода, что предотвращает выполнение вредоносного кода.
- Валидация и фильтрация пользовательского ввода — проверка данных на соответствие ожидаемому формату.
- Использование ORM — многие ORM автоматически защищают от SQL-инъекций.
- Минимизация прав доступа к базе данных — ограничение прав пользователя базы данных, используемого приложением.
Пример на языке SQL с параметризованным запросом (например, на Python с библиотекой sqlite3):
cursor.execute("SELECT * FROM users WHERE username = ?", (username,))
Здесь username передается как параметр, что исключает возможность инъекции.