Курс 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. Функция all() в Python
  2. Создание и обучение модели с Keras
  3. Получение текущей директории
  4. Перевернуть список в Python
  5. Разница между датами
  6. Работа с enumerate()
  7. EMOT преобразование эмодзи в текст
  8. Функция enumerate в Python
  9. Создание словаря через dict comprehension
  10. Условное добавление элементов в список
  11. Блок else в циклах Python
  12. Руководство по Pymorphy2
  13. Подсказки типов в Python
  14. Игра Виселица на Python
  15. Переворот строки с помощью срезов
  16. Codecademy в Telegram
  17. Именованные аргументы в Python
  18. Библиотека schedule: планировщик задач
  19. Поиск индексов в списке
  20. Нахождение разницы между списками в Python
  21. Циклы for в Python
  22. Функция reduce() из модуля functools
  23. Метод join() для объединения строк
  24. Множества и frozenset
  25. Объединение списков с помощью zip
  26. Создание коллекций из генератора
  27. Форматирование строк в Python
  28. Капитализация строк
  29. Подсчет количества элементов в списке
  30. Разработка Telegram-ботов
  31. Работа с изменяемыми коллекциями
  32. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  33. Работа с путями в Python
  34. Библиотека Rich: форматирование текста
  35. Генератор бросков кубиков
  36. Объединение списков в Python
  37. Работа с модулем random
  38. Проблемы с dict в Python
  39. Метод __irshift__ для Python
  40. Метод radd для пользовательских чисел
  41. Сравнение объектов в Python
  42. Функции в одну строку
  43. Python Метод sleep() времени
  44. Особенности запятых в Python

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