Sobes.tech
Junior — Middle
102

¿Qué métodos se deben usar para prevenir inyecciones SQL en una aplicación?

Empresas donde se preguntó
КонтурКонтур
Black Wall Group

Respuesta de la IA

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-инъекции.