Курс 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 3.10
- Python: цикл for и оператор присваивания
- Bootle — простой веб-фреймворк
- Работа с collections в Python.
- Обработка исключения UnboundLocalError
- Python: Фильтрация списков с помощью filter()
- Объединение объектов в Python
- Хеши в Python
- Округление чисел с помощью round
- Генераторы списков в Python
- Подсказки типов в Python
- Оператор continue в Python
- Удаление falsy-значений из списка с помощью filter
- Работа с enumerate()
- Операции с кортежами
- Объединение коллекций в Python
- Извлечение статей с newspaper3k
- Модуль itertools: комбинации и перестановки
- Конвертация коллекций в Python
- Работа с необработанными строками
- Функция enumerate в Python
- Ограничение ресурсов в Python
- Упрощение работы с JSON-данными в Python
- Проверка кортежей.
- Разрешение имен в Python
- Вложенные циклы в Python
- Экспорт внешнего файла с помощью writefile
- GitHub в Telegram: подписка на уведомления
- Лямбда-функции в Python
- Гибкие функции Python
- Оператор in для проверки наличия элемента
- Функция reversed() в Python
- Глобальные переменные в Python
- Создание новых списков через list comprehensions
- Удаление символа из строки
- Измерение времени выполнения кода
- Настройка логгера Logzero
- Установка и использование howdoi
- Импорт модулей в Python 3.12
- Генераторы списков
- Участие в LP стейкинге Waves
- Работа со временем в Python
- Enum в Python
- Абстракции словарей и множеств в Python















