Защита веб-приложения на фреймворке Django | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 11 мая, печатный экземпляр отправим 15 мая.

Опубликовать статью в журнале

Автор:

Научный руководитель:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №44 (491) ноябрь 2023 г.

Дата публикации: 01.11.2023

Статья просмотрена: 41 раз

Библиографическое описание:

Бунаков, Д. С. Защита веб-приложения на фреймворке Django / Д. С. Бунаков. — Текст : непосредственный // Молодой ученый. — 2023. — № 44 (491). — С. 15-18. — URL: https://moluch.ru/archive/491/107200/ (дата обращения: 27.04.2024).



При проектировании веб-приложения важна защита пользовательских данных. В данной статье рассмотрим основные типы атак и методы защиты на фреймворке Django.

Ключевые слова: Django, CSRF, HTML, TLS, XSS.

Django — это популярная платформа для веб-разработки на языке Python, которая позволяет быстро создавать масштабируемые веб-приложения, такие как блоги, форумы, интернет-магазины и другое. Что привлекает внимание злоумышленников, стремящихся получить несанкционированный доступ к пользовательским данным или изменить их. Есть другой, не менее популярный фреймворк на Python — Flask. Flask является микрофреймворком, который предлагает меньше встроенных функций безопасности, чем Django. Что делает его более гибким и позволяет разработчикам самим выбирать и настраивать инструменты безопасности. С другой стороны, Django — это этакий комбайн, который предлагает более широкий набор инструментов для обеспечения безопасности.

Архитектура

Первоочередная задача для обеспечения безопасности любого веб-приложения состоит в выборе правильной архитектуры. Обычно, при разработке приложения, команда инженеров-программистов и менеджеров по продуктам работает вместе для определения эффективной технической модели, соответствующей конкретным бизнес-целям. В области разработки программного обеспечения, роль архитектора заключается в проектировании модулей на высоком уровне и выборе оптимальных способов их взаимодействия. Кроме того, важно учесть лучшие практики хранения данных, будущие сторонние зависимости, а также преобладающую парадигму программирования и другие факторы.

Выбор архитектуры программного обеспечения сравнивается с проектированием здания — это тонкий процесс, связанный с риском, поскольку переделка готового приложения обходится очень дорого. То же самое относится и к архитектуре системы безопасности. Часто уязвимости можно легко предотвратить на этапе планирования и оценки, так как нехватка этих этапов может привести к необходимости переделки кода приложения, что затратно. По возможности не изобретайте «велосипеды», будьте более консервативны при выборе продуктов. Не у всех хватает ресурсов, все тщательно протестировать

Контроль доступа.

Согласно рейтингу OWASP Top Ten https://owasp.org/www-project-top-ten/ [1] в 2021 году на первое место вырвалось атака A01:2021-Broken Access Control. Процесс авторизации дает пользователям специфические права на выполнение определенных действий, а также подтверждает эти права при попытке выполнения этих действий. После успешной аутентификации происходит авторизация, которая определяет, к каким функциям и данным пользователь имеет доступ, обеспечивая должное разделение прав доступа.

Именно поэтому веб-приложения нуждаются в механизмах контроля доступа, которые предоставляют пользователям различные привилегии в использовании приложения. Контроль доступа ограничивает возможность тех или иных лиц или объектов выполнить определенные функции и получить доступ к запрашиваемым ресурсам. Нарушение контроля доступа — это частая и критическая уязвимость системы безопасности.

В Django есть встроенный инструмент для управления доступом — Django Admin, который позволяет создавать и редактировать пользователей, а также настраивать права доступа для них.

Аутентификация создается автоматические при создании веб-приложения с помощью команды

django-admin startproject

в файле settings.py вашего приложения уже прописаны настройки:

INSTALLED_APPS = [

...

'django.contrib.auth', # Фреймворк аутентификации и моделей по умолчанию.

'django.contrib.contenttypes', # Django контент-типовая система (даёт разрешения, связанные с моделями).

....

MIDDLEWARE = [

... 'django.contrib.sessions.middleware.SessionMiddleware', # Управление сессиями между запросами

... 'django.contrib.auth.middleware.AuthenticationMiddleware', # Связывает пользователей, использующих сессии, запросами.

....

Также контроль доступа реализуется с помощью таких пакетов как Django-axes https://pypi.org/project/django-axes/ и Django-guardian https://pypi.org/project/django-guardian/

Межсайтовый скриптинг (XSS)

XSS — это термин, описывающий класс атак, позволяющих злоумышленнику внедрить скрипты через веб-сайт, которые будут выполнены на устройстве пользователя, посетившего страницу. Часто злоумышленники достигают этого путем сохранения вредоносного кода в базе данных, откуда код будет извлечен и выполнен для пользователя, запрашивающего определенные данные (например, сохранение тега

Основные термины (генерируются автоматически): XSS, CSRF, HTML, MIDDLEWARE, OWASP, TLS, пользователь, программное обеспечение.


Ключевые слова

HTML, TLS, XSS, Django, CSRF

Похожие статьи

Задать вопрос