Курс 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 3.10
  2. Python: цикл for и оператор присваивания
  3. Bootle — простой веб-фреймворк
  4. Работа с collections в Python.
  5. Обработка исключения UnboundLocalError
  6. Python: Фильтрация списков с помощью filter()
  7. Объединение объектов в Python
  8. Хеши в Python
  9. Округление чисел с помощью round
  10. Генераторы списков в Python
  11. Подсказки типов в Python
  12. Оператор continue в Python
  13. Удаление falsy-значений из списка с помощью filter
  14. Работа с enumerate()
  15. Операции с кортежами
  16. Объединение коллекций в Python
  17. Извлечение статей с newspaper3k
  18. Модуль itertools: комбинации и перестановки
  19. Конвертация коллекций в Python
  20. Работа с необработанными строками
  21. Функция enumerate в Python
  22. Ограничение ресурсов в Python
  23. Упрощение работы с JSON-данными в Python
  24. Проверка кортежей.
  25. Разрешение имен в Python
  26. Вложенные циклы в Python
  27. Экспорт внешнего файла с помощью writefile
  28. GitHub в Telegram: подписка на уведомления
  29. Лямбда-функции в Python
  30. Гибкие функции Python
  31. Оператор in для проверки наличия элемента
  32. Функция reversed() в Python
  33. Глобальные переменные в Python
  34. Создание новых списков через list comprehensions
  35. Удаление символа из строки
  36. Измерение времени выполнения кода
  37. Настройка логгера Logzero
  38. Установка и использование howdoi
  39. Импорт модулей в Python 3.12
  40. Генераторы списков
  41. Участие в LP стейкинге Waves
  42. Работа со временем в Python
  43. Enum в Python
  44. Абстракции словарей и множеств в Python

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