Back to questions
Junior — Middle
81
Какие меры следует предпринять для предотвращения выполнения вредоносных SQL-запросов в приложении?
Answer from AI
sobes.tech AI
Для предотвращения выполнения вредоносных SQL-запросов (SQL-инъекций) в приложении следует:
- Использовать параметризованные запросы (prepared statements), которые отделяют код SQL от данных.
- Применять ORM (Object-Relational Mapping), которые автоматически формируют безопасные запросы.
- Валидировать и фильтровать пользовательский ввод, ограничивая допустимые символы и форматы.
- Использовать механизмы экранирования специальных символов, если параметризация невозможна.
- Ограничивать права доступа к базе данных, чтобы приложение имело минимально необходимые привилегии.
Пример параметризованного запроса на Python с использованием библиотеки sqlite3:
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
user_id = input("Введите ID пользователя: ")
cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))
result = cursor.fetchall()
Такой подход предотвращает внедрение вредоносного SQL-кода через пользовательский ввод.