Курс Python → Безопасные SQL-запросы в Python 3.11
SQL-инъекции — это один из наиболее распространенных способов атаки на веб-приложения. При этом злоумышленник может внедрить SQL-запрос в пользовательский ввод и получить несанкционированный доступ к базе данных. Для защиты от таких атак необходимо использовать безопасные методы работы с базой данных.
В Python 3.11 был добавлен новый класс LiteralString, который позволяет создавать безопасные SQL-запросы. Этот класс автоматически экранирует специальные символы в строке, что делает ее недоступной для инъекций. Таким образом, использование LiteralString обеспечивает надежную защиту от SQL-инъекций.
Пример использования LiteralString для защиты от SQL-инъекций:
from psycopg2 import sql
query = sql.SQL("SELECT * FROM users WHERE username = {}").format(sql.LiteralString(username))
В данном примере переменная username экранируется с помощью LiteralString, что позволяет передавать ее в SQL-запрос без опасения SQL-инъекций. Таким образом, использование LiteralString в Python 3.11 обеспечивает безопасность работы с базой данных и защиту от потенциальных атак.
Другие уроки курса "Python"
- Функция zip() в Python
- Конкатенация списков в Python
- 9 уловок для чистого кода
- Работа с географическими данными.
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Проверка вхождения подстроки
- Основные функции и модули Python
- Объединение списков в Python.
- Группировка элементов Python
- Замена атрибута в именованном кортеже
- Метод join для наборов
- Сериализация и десериализация объектов
- Работа с модулем glob в Python
- Списковое включение в Python
- Скрытие вывода данных
- Работа с модулем Calendar
- PUT запрос для обновления данных
- Нахождение хеша для бесконечности и NaN в Python
- Любовь к Python
- Форматирование вывода с F-строками
- Метод is_absolute() для PurePath
- Структурирование именованных констант
- Проверка подстроки в строке с помощью in
- Профилирование с Pandas
- Добавление вложенных списков
- split() — разделение строки
- Тест скорости набора текста на Python
- Оператор == в Python
- Генераторы в Python
- Лямбда-функции в Python
- Операции с кортежами
- Управление сессиями в Python
- Возврат нескольких значений
- Работа с модулем os в Python
- Установка и использование модуля «howdoi»
- Объединение словарей в Python
- Модуль itertools: эффективная работа с итераторами
- Повторение элементов в Python
- Работа с IP-адресами в Python
- Измерение времени выполнения кода
- Работа с YAML в Python
- Lambda Functions in Python
- Преобразование регистра строк
- Метод repr() в Python
- Настройка вывода NumPy
- Работа с файлами в Python
- Измерение времени выполнения кода
- Визуализация пропусков данных















