Какие методы использовать для предотвращения SQL-инъекций в приложении?
Answer from AI
sobes.tech AI
Для предотвращения SQL-инъекций в Python-приложениях рекомендуется использовать следующие методы:
-
Параметризованные запросы (Prepared Statements) — вместо конкатенации строк с SQL-запросом используйте параметры, которые передаются отдельно в метод выполнения запроса. Это гарантирует, что пользовательский ввод не будет интерпретирован как часть SQL-кода.
-
Использование ORM — такие библиотеки, как SQLAlchemy, автоматически формируют безопасные запросы, минимизируя риск инъекций.
-
Валидация и экранирование входных данных — хотя это не заменяет параметризацию, дополнительная проверка данных помогает повысить безопасность.
Пример параметризованного запроса с использованием библиотеки sqlite3:
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
user_id = 1
cursor.execute('SELECT * FROM users WHERE id = ?', (user_id,))
rows = cursor.fetchall()
Здесь знак вопроса ? — это плейсхолдер для параметра, который передаётся отдельно, что предотвращает SQL-инъекции.