Курс 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. Работа с кортежами
  3. Печать комбинаций в Python с Itertools
  4. Основные функции и модули Python
  5. Работа с кортежами в Python
  6. Профилирование кода
  7. Форматирование строк в Python
  8. Функции range() в Python
  9. Работа с срезами в Python
  10. Работа с функцией next() в Python
  11. Список и кортеж в Python
  12. Оболочка Python
  13. Описание скриптов в README
  14. Mad Libs Generator
  15. Удаление специальных символов
  16. Обход элементов в Python
  17. Обновление шаблона base.html
  18. Извлечение аудио из видео
  19. Создание вложенных циклов for
  20. Проверка ввода с помощью isdigit
  21. Работа с множествами в Python
  22. Возврат нескольких значений
  23. Оператор Walrus в Python 3.8
  24. Копирование списков в Python
  25. Инверсия списков и строк в Python
  26. Управление памятью в Python
  27. Генератор списка в Python
  28. Заказ карты Тинькофф Black
  29. Дефолтные параметры в Python
  30. Работа с пользовательским вводом
  31. Решение переменной Шредингера
  32. Область видимости переменных
  33. Создание и использование ChainMap
  34. Фильтрация входных данных в Python
  35. Преобразование списков в словарь
  36. Измерение времени выполнения
  37. Комментарии в Python
  38. Функция divmod() в Python
  39. Переворот последовательности
  40. Декоратор защиты анонимных пользователей
  41. Копирование объектов в Python
  42. Переопределение метода len
  43. Классы данных в Python
  44. Работа со стеком в Python
  45. Поиск email
  46. Метод rmatmul для пользовательских матриц

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