Безопасность и данные
XSS, CSRF, SQL-инъекции, загрузка файлов, доступы, зависимости, секреты, приватность и согласия
Материалы
- Безопасность веб-приложения
Изучаем безопасность на примере библиотеки личных заметок: модель угроз, проверка данных, XSS, SQL, пароли, сессии, права доступа, файлы и эксплуатация приложения.
- Модель угроз веб-приложения: активы и границы доверия
Активы, границы доверия и проверяемые требования
- Локальный стенд безопасности
Отдельный Flask-проект и два учебных владельца заметок
- Валидация входных данных веб-приложения
Серверные ограничения формы и параметров
- XSS и контекст вывода
Текстовые заметки без интерпретации HTML
- CSP и защитные заголовки
Политика ресурсов и ограничения её действия
- Защита от SQL-инъекций: параметризованные запросы
Запросы SQLite без подстановки пользовательского кода
- Пароли веб-приложения: хранение и проверка
Хеширование пароля и проверка через библиотеку
- Безопасность веб-сессий и cookie
Подпись, срок сессии и параметры cookie
- Авторизация объектов веб-приложения: права доступа
Проверка владельца каждой заметки
- Защита форм от CSRF
Токен для изменяющих запросов
- Безопасные редиректы: проверка адреса назначения
Возврат только на разрешённые маршруты
- Безопасная загрузка изображений
Ограниченный PNG и новое серверное имя
- Приватные файлы в Flask: проверка права доступа
Выдача вложения после проверки владельца
- SSRF и исходящие запросы
Фиксированный сетевой договор вместо произвольного URL
- Безопасность API и CORS
JSON-договор, права и запрет лишних возможностей
- Rate limiting в веб-приложении: лимит попыток и нагрузки
Локальный лимит и описание границ общей защиты
- Секреты и логи: безопасная обработка ошибок приложения
Непубличная конфигурация и журнал без паролей
- Безопасность зависимостей
Процесс проверки состава и известных уязвимостей
- HTTPS и доверие к прокси
Связь внешнего HTTPS с настройками приложения
- Безопасность веб-приложения: жизненный цикл данных
Хранение, удаление и копии в одной модели
- Безопасность веб-приложения: действия при утечке и инциденте
План ограничения ущерба и отзыва доступа
- Проверка безопасности перед выпуском
Матрица требований и полный учебный исходник
- Единый вход: OAuth, OIDC и passkeys
14 уроков одного развивающегося проекта: Разделить приложение, провайдера идентичности и браузер. Зафиксировать HTTPS, внешнюю сессию, конфигурацию и журнал событий.