1 of 11

Лекция 9 — Веб-фреймворки и их безопасность

2 of 11

Введение в веб-фреймворки

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

3 of 11

Популярные веб-фреймворки

  • • Django (Python) — принцип «Сделай правильно с самого начала».
  • • Flask (Python) — лёгкий модульный подход.
  • • Express (Node.js) — гибкий и минималистичный.
  • • Spring (Java) — корпоративный фреймворк с мощной системой безопасности.

4 of 11

Django и безопасность

Django изначально спроектирован с учётом безопасности:

• Защита от XSS — автоматическое экранирование данных.

• Защита от CSRF — встроенные CSRF-токены.

• Аутентификация — хэширование паролей, безопасные сессии.

• Защита от SQL Injection — через ORM.

5 of 11

Пример защиты от XSS в Django

  • Если пользователь введёт <script>alert('xss')</script>, Django выведет это как текст, не позволяя выполнить код. Для отключения экранирования используется фильтр safe.

6 of 11

Flask и безопасность

• Экранирование данных вручную через шаблоны.

• CSRF-защита через расширения Flask-WTF.

• Flask-Login для аутентификации.

Типичные ошибки: отсутствие CSRF и неправильная работа с cookie.

7 of 11

Express и безопасность

  • • Использует middleware (например, csurf) для CSRF.
  • • JWT и OAuth для аутентификации.
  • • Фильтрация пользовательских данных.
  • Типичные ошибки: отсутствие экранирования и защиты CORS.

8 of 11

Spring и безопасность

• Spring Security — мощная система аутентификации и авторизации.

• Встроенные CSRF-токены и защита от XSS.

Типичные ошибки: неправильная конфигурация или игнорирование обновлений.

9 of 11

Типичные ошибки при использовании фреймворков

  • 1. Отсутствие обновлений и патчей.
  • 2. Игнорирование встроенных средств защиты.
  • 3. Отсутствие валидации входных данных.
  • 4. Недостаточный мониторинг и логирование.

10 of 11

Лучшие практики безопасности

  • • Всегда обновляйте фреймворки и зависимости.
  • • Используйте встроенные инструменты безопасности.
  • • Настройте CSP и заголовки безопасности.
  • • Проводите регулярный аудит кода и тестирование (SAST, DAST).

11 of 11

Вопросы для самопроверки

  • 1. Что такое веб-фреймворк?
  • 2. Какие преимущества встроенной безопасности Django?
  • 3. Как Flask обеспечивает защиту от CSRF?
  • 4. Что делает Spring Security?
  • 5. Почему важно обновлять фреймворки?