Back to questions
Junior — Middle
62
Какими способами можно защитить приложение от SQL-инъекций?
Answer from AI
sobes.tech AI
Для защиты приложения от SQL-инъекций можно использовать следующие методы:
- Параметризированные запросы (prepared statements) — вместо вставки значений напрямую в SQL-запрос используются параметры, которые база данных обрабатывает отдельно.
- Использование ORM — многие ORM автоматически экранируют данные и формируют безопасные запросы.
- Валидация и фильтрация входных данных — проверка и ограничение формата и типа данных, поступающих от пользователя.
- Минимизация прав доступа к базе — приложение должно иметь только необходимые права, чтобы ограничить возможный ущерб.
Пример параметризированного запроса в Python с использованием библиотеки 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()
conn.close()
Здесь знак вопроса ? — это параметр, который безопасно подставляется в запрос, предотвращая инъекции.