Курс 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. Структура данных deque в Python
  3. Генераторы данных
  4. Именованные срезы в Python
  5. Повторение элементов в Python
  6. Переопределение метода __rshift__
  7. Управление ресурсами в Python
  8. Генерация тестовых данных с factory_boy
  9. Оператор assert в Python
  10. Генератор данных в Keras
  11. Шаблоны Flask: условия и циклы
  12. Оператор «not» в Python
  13. Настройка шрифта и цвета в Tkinter
  14. Возвращение нескольких значений через кортеж или класс
  15. Сравнение def и lambda функций в Python
  16. Функции all() и any() в Python
  17. Объединение словарей в Python
  18. Экранирование символов в Python
  19. Работа с эмодзи в Python
  20. Использование type hints
  21. Импорт модуля из другого каталога
  22. Перевод текста с Python Translator
  23. Шаблоны и наследование в Flask
  24. Оператор zip в Python
  25. Обновление и получение данных в SQLite
  26. Копирование списков в Python
  27. Функция enumerate() в Python
  28. Цепные операции в Python
  29. Ввод нескольких значений
  30. Проверка элементов списка условием
  31. Фильтрация данных в Python.
  32. Метод сравнения объектов в Python
  33. Объединение словарей в Python
  34. JMESPath в Python
  35. Декораторы в Python
  36. Итераторы в Python
  37. Создание словарей с defaultdict()
  38. Явный импорт переменных
  39. Запуск файлового сервера
  40. Создание итерируемых объектов
  41. Аннотации типов в Python
  42. Настройка Cron
  43. Добавление Progressbar в Python
  44. Метод pop() списка
  45. UserList в Python: Описание и примеры использования
  46. Функция format() в Python
  47. Структура данных словарь в Python

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