Курс 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"
- Функции-генераторы в Python
- Добавление кнопки в tkinter
- Модуль subprocess: запуск внешних команд
- Модуль pprint
- Подсказки типов в Python
- Генераторы списков
- Именованные аргументы в Python
- Работа с изображениями PIL
- Проверка памяти объекта
- Контекстный менеджер в Python
- Лямбда-функции в Python
- Протокол управления контекстом
- Подсчет элементов с помощью Counter
- Документирование функций в Python
- Именованные кортежи в Python
- Метод count() для списков
- Классы данных в Python
- Профилирование данных с Pandas
- Декодирование строк в Python
- Расширение информации об ошибке в Python
- Создание копии итератора
- Введение в PyTorch
- Импорт с альтернативным именем
- Создание новой даты в Python
- Комментарии в Python
- Удаление элемента из списка
- Измерение времени выполнения в Python
- Пропуск начальных строк с помощью dropwhile()
- Управление виртуальными окружениями в Python
- Профилирование с cProfile
- Структура данных словарь в Python
- Названия столбцов в Python таблицах
- Работа с Telegram API на Python
- Функция zip() — объединение последовательностей
- ChainMap.new_child() — добавление нового словаря
- Запрос DELETE с библиотекой requests
- Работа со строками в Python
- Измерение времени выполнения кода с использованием time
- Цикл for в Python
- Оптимизация строк в Python
- Генераторы в Python
- Работа с библиотекой requests
- Удаление символа из строки
- Обход дочерних элементов BeautifulSoup















