Что такое SQL-инъекция и как от неё защититься?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

Для предотвращения 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-инъекции.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее