Курс 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. Функции-генераторы в Python
  2. Добавление кнопки в tkinter
  3. Модуль subprocess: запуск внешних команд
  4. Модуль pprint
  5. Подсказки типов в Python
  6. Генераторы списков
  7. Именованные аргументы в Python
  8. Работа с изображениями PIL
  9. Проверка памяти объекта
  10. Контекстный менеджер в Python
  11. Лямбда-функции в Python
  12. Протокол управления контекстом
  13. Подсчет элементов с помощью Counter
  14. Документирование функций в Python
  15. Именованные кортежи в Python
  16. Метод count() для списков
  17. Классы данных в Python
  18. Профилирование данных с Pandas
  19. Декодирование строк в Python
  20. Расширение информации об ошибке в Python
  21. Создание копии итератора
  22. Введение в PyTorch
  23. Импорт с альтернативным именем
  24. Создание новой даты в Python
  25. Комментарии в Python
  26. Удаление элемента из списка
  27. Измерение времени выполнения в Python
  28. Пропуск начальных строк с помощью dropwhile()
  29. Управление виртуальными окружениями в Python
  30. Профилирование с cProfile
  31. Структура данных словарь в Python
  32. Названия столбцов в Python таблицах
  33. Работа с Telegram API на Python
  34. Функция zip() — объединение последовательностей
  35. ChainMap.new_child() — добавление нового словаря
  36. Запрос DELETE с библиотекой requests
  37. Работа со строками в Python
  38. Измерение времени выполнения кода с использованием time
  39. Цикл for в Python
  40. Оптимизация строк в Python
  41. Генераторы в Python
  42. Работа с библиотекой requests
  43. Удаление символа из строки
  44. Обход дочерних элементов BeautifulSoup

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