Курс 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. Логирование с Loguru
  2. Извлечение данных из JSON
  3. Функция count() в Python
  4. Измерение времени выполнения кода
  5. Импортирование в Python
  6. Наследование в программировании
  7. Применение функции map() в Python
  8. Объединение списков в строку
  9. None в Python: использование и особенности
  10. Избегание изменяемых аргументов
  11. Преобразование текста в речь с Python
  12. Библиотека itertools: объединение списков
  13. Операции с комплексными числами
  14. Установка виртуального окружения Python
  15. Работа с *args и **kwargs в Python
  16. Загрузка постов Instagram
  17. Методы split() и join() — Python строк.
  18. Работа с рекламными данными в Pandas
  19. Метод ifloordiv для пользовательских классов
  20. Метод splitlines() для разделения строк
  21. Создание объекта времени
  22. Обновление и получение данных в SQLite
  23. Объединение коллекций в Python
  24. Конвертация коллекций в Python
  25. Перезагрузка оператора в Python
  26. Форматирование заголовков в Python
  27. Метод join() для объединения элементов
  28. Monkey Patching в Python
  29. Поиск частых элементов в списке
  30. Метод rmatmul для пользовательских матриц
  31. Работа с срезами в Python
  32. Метод count() для списка
  33. Основы слова
  34. Работа с итераторами в Python
  35. Очистка данных с помощью pandas
  36. Методы __repr__ и __str__ в Python
  37. Установка библиотек в Python
  38. Ключевое слово global в Python
  39. Создание новых списков в Python
  40. Оператор in для Python
  41. inspect в Python: анализ кода
  42. discard() — удаление элемента из множества
  43. Обмен переменными в Jupyter
  44. Настройка Cron
  45. Комментарии в Python
  46. Новшества Flask 2.0

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