Статья опубликована в рамках: Научного журнала «Студенческий» № 22(318)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8
СОВРЕМЕННЫЕ СПОСОБЫ ЗАЩИТЫ ОТ SQLI НА PYTHON И C#
MODERN WAYS TO PROTECT YOU FROM SQLI
Tihon Prokopenko
student, Department of Software of Information Technologies, Belarusian-Russian University,
Belarus, Mogilev
Evgeny Vasilkov
student, Department of Software of Information Technologies, Belarusian-Russian University,
Belarus, Mogilev
Olga Sergienko
scientific supervisor, senior lecture, Belarusian-Russian University,
Belarus, Mogilev
АННОТАЦИЯ
В данной работе рассматриваются современные методы защиты приложений от SQL инъекций (SQLi), одной из наиболее распространённых и критических уязвимостей, позволяющих злоумышленникам получить несанкционированный доступ к базам данных. В работе представлены примеры реализации безопасного взаимодействия с базами данных на языках Python и C#, включая использование параметризованных запросов и технологий ORM. Приведены примеры уязвимого и защищённого кода, а также результаты тестирования защиты при попытках SQL инъекций.
ABSTRACT
This paper discusses modern methods of protecting applications from SQL injections (SQLi), one of the most common and critical vulnerabilities that allow attackers to gain unauthorized access to databases. The paper presents examples of implementing secure interaction with databases in Python and C#, including the use of parameterized queries and ORM technologies. Examples of vulnerable and protected code are given, as well as the results of testing protection against SQL injection attempts.
Ключевые слова: SQL инъекции, защита приложений, параметризованные запросы, ORM, безопасность баз данных.
Keywords: SQL injections, application protection, parameterized queries, ORM, database security.
Введение
SQL инъекции (SQLi) по-прежнему остаются одной из наиболее распространённых и критических уязвимостей веб-приложений. Злоумышленники могут использовать данную уязвимость для несанкционированного доступа к базам данных, что может привести к раскрытию конфиденциальной информации, её модификации или удалению. Согласно рейтингу OWASP Top 10, SQLi продолжает оставаться актуальной угрозой в области информационной безопасности. [4]
Базы данных являются неотъемлемой частью большинства современных веб-приложений и сервисов, поэтому обеспечение их защиты — важнейшая задача при разработке программного обеспечения. Взаимодействие с базами данных реализуется практически на всех языках программирования, используемых для веб-разработки, что делает проблему SQL-инъекций достаточно острой, особенно для малых проектов.
На сегодняшний день одними из самых эффективных методов защиты от SQL-инъекций являются использование параметризованных запросов и применение ORM (Object-Relational Mapping), которые минимизируют риск ошибок, связанных с неправильным формированием SQL-запросов. В рамках данной работы рассматриваются современные подходы к защите от SQL-инъекций на примере языков Python и C#, а также демонстрируется разница между уязвимым и защищённым кодом.
Целью исследования является анализ современных способов защиты от SQL-инъекций и практическая проверка на языках Python и C#.
Защита на python
Примеры уязвимых и защищённых кодов с выводом результатов на python:
Рисунок 1. Пример уязвимого кода на python
Рисунок 2. Успешное использование уязвимости на python
Рисунок 3. Пример защищённого кода на python
Рисунок 4. Отказ системы при попытке SQL-инъекции на python
Рисунок 5. Пример защищённого кода на python c использованием ORM
Рисунок 6. Отказ системы при попытке SQL-инъекции на python с использованием ORM
Современные фреймворки на Python предоставляют инструменты для обеспечения безопасности при работе с SQL запросами как на уровне ORM, так и при использовании «сырых» SQL запросов. [3]
Зашита на C#
Примеры уязвимых и защищённых кодов с выводом результатов на C#: [1]
Рисунок 7. Пример уязвимого кода на C#
Рисунок 8. Успешное использование уязвимости на C#
Рисунок 9. Пример защищённого кода на C#
Рисунок 10. Отказ системы при попытке SQL-инъекции на C#
Рисунок 11. Пример защищённого кода на C# c использованием ORM
Рисунок 12. Отказ системы при попытке SQL-инъекции на python с использованием ORM
Современные фреймворки на C# предоставляют инструменты для обеспечения безопасности при работе с SQL запросами как на уровне ORM, так и при использовании «сырых» SQL запросов.[2]
Заключение
В работе были рассмотрены современные способы защиты от SQL-инъекций, такие как использование параметризованных запросов и ORM (Object-Relational Mapping). Демонстрация уязвимого и защищённого кода на языках Python и C# показала эффективность этих методов. Параметризованные запросы предотвращают выполнение вредоносного SQL-кода, отделяя данные от команд, а ORM обеспечивает дополнительный уровень абстракции и автоматически обрабатывает безопасность запросов.
Кроме того, современные фреймворки, такие как SQLAlchemy для Python и Entity Framework для C#, предоставляют мощные инструменты для безопасной работы с базами данных, минимизируя риск возникновения уязвимостей.
Список литературы:
- ADO.NET и C# | Подключение к базе данных SQLite. – URL: https://metanit.com/sharp/adonetcore/4.1.php (дата обращения: 16.06.2025). – Текст : электронный.
- C# и WPF | Работа с SQLite через Entity Framework. – URL: https://metanit.com/sharp/wpf/21.1.php (дата обращения: 16.06.2025). – Текст : электронный.
- Python и базы данных | Основные операции с данными в SQLAlchemy. – URL: https://metanit.com/python/database/3.3.php (дата обращения: 16.06.2025). – Текст : электронный.
- OWASP Top Ten | OWASP Foundation. – URL: https://owasp.org/www-project-top-ten/ (дата обращения: 15.06.2025). – Текст : электронный.
Оставить комментарий