Курс 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"

  1. Вывод с переменной через запятую
  2. Метод gt в Python
  3. Генераторы данных
  4. Метод difference_update() — разность множеств
  5. Декораторы в Python
  6. Магические методы в Python
  7. Переопределение унарных операторов
  8. Логирование с Loguru
  9. Повторение и перенос строки
  10. Перевод эмодзи и эмотиконов.
  11. Создание файла с проверкой ошибки
  12. Генераторы в Python
  13. Создание GUI на Tkinter
  14. Работа с датой и временем в Python
  15. Вложенные циклы в Python
  16. Вычисление разности множеств в Python
  17. Фильтрация входных данных в Python
  18. Просмотр файла в Jupyter Noteboo
  19. Обратный список чисел
  20. Атрибуты класса и экземпляра
  21. Создание GUI с Tkinter: Entry
  22. Особенности запятых в Python
  23. Контроль точности вывода чисел
  24. Работа с датами в Python
  25. Модуль os: работа с файлами и папками
  26. Python и Монти Пайтон
  27. Обработка StopIteration в Python
  28. Concrete Paths — метод .with_suffix()
  29. Управление мышью и клавиатурой с Pyautogui
  30. Метод enumerate() в Python
  31. Введение в PyTorch
  32. Преобразование числа в восьмеричную строку
  33. Получение списка кортежей из словаря
  34. Оператор in и not in в Python
  35. Определение функций с необязательными аргументами
  36. Склеивание строк без циклов
  37. Декоратор Ajax required
  38. Измерение времени выполнения кода с использованием time
  39. Работа с контекстными менеджерами
  40. Удаление элемента из списка в Python
  41. Переопределение метода __floordiv__

Marketello читают маркетологи из крутых компаний