Курс 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. Метод get() в Python
  2. Управление экспортом элементов
  3. Модуль antigravity: генерация координат
  4. Библиотека Emoji: использование смайлов в Python
  5. Объединение кортежей в Python
  6. Операторы увеличения и уменьшения переменной
  7. Профилирование с cProfile
  8. Метод join() для объединения элементов в строку.
  9. Создание новых списков в Python
  10. Структуры данных в Python
  11. Обновление и получение данных в SQLite
  12. Работа с временем в Python
  13. Проблемы с dict в Python
  14. Логирование в Python
  15. Работа с CSV файлами в Python
  16. Поиск простых чисел
  17. Работа с изображениями Pillow
  18. Атрибуты класса и экземпляра
  19. Метод lt для сортировки объектов
  20. Проверка подстроки в строке
  21. Библиотека sh: использование команд bash в Python
  22. Тернарный оператор в Python
  23. Создание новых списков
  24. Улучшение читаемости кода в Python
  25. Закрытие файла в Python
  26. Оператор del в Python
  27. Работа с датой и временем в Python
  28. Цепные операции в Python
  29. globals и locals
  30. Регистрация на хакатоне
  31. split() без разделителя
  32. Работа с f-строками 2.0
  33. Codecademy в Telegram
  34. Извлечение аудио из видео
  35. Блок try-except-else
  36. Работа с аргументами командной строки
  37. Создание графиков в терминале
  38. Частичное совпадение ввода
  39. Удаление элементов из списка
  40. Хеширование паролей с использованием salt
  41. Создание вкладок с TKinter
  42. Перевод текста с Python Translator
  43. Просмотр внешнего файла в Python
  44. Преобразование вложенного списка
  45. Метод __iand__ для пользовательских классов
  46. Конкатенация строковых литералов
  47. Комплексные числа в Python
  48. Счетчик в Python: most_common()
  49. Перегрузка операторов в Python

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