Sobes.tech
Back to questions
Junior — Middle
63

Какие методы использовать для предотвращения SQL-инъекций в приложении?

Companies where asked
КонтурКонтур
Black Wall Group

Answer from AI

sobes.tech AI

Для предотвращения SQL-инъекций в Python-приложениях рекомендуется использовать следующие методы:

  1. Параметризованные запросы (Prepared Statements) — вместо конкатенации строк с SQL-запросом используйте параметры, которые передаются отдельно в метод выполнения запроса. Это гарантирует, что пользовательский ввод не будет интерпретирован как часть SQL-кода.

  2. Использование ORM — такие библиотеки, как SQLAlchemy, автоматически формируют безопасные запросы, минимизируя риск инъекций.

  3. Валидация и экранирование входных данных — хотя это не заменяет параметризацию, дополнительная проверка данных помогает повысить безопасность.

Пример параметризованного запроса с использованием библиотеки 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-инъекции.