Безопасность ASP.NET Core
Покупка
Новинка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Венц Кристиан
Перевод:
Беликов Дмитрий Анатольевич
Год издания: 2023
Кол-во страниц: 388
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-93700-176-4
Артикул: 855973.01.99
В книге рассматриваются методы защиты веб-приложений ASP.NET Core: безопасное взаимодействие с браузером, распознавание и предотвращение распространенных угроз, развертывание уникальных API безопасности этого фреймворка. Приводятся способы написания безопасного кода и примеры с аннотациями, а также полное описание встроенных инструментов безопасности ASP.NET Core. Обсуждаются реальные нарушения в системе безопасности, включая мошеннические расширения Firefox и кражу паролей в Adobe. В универсальных рекомендациях по обеспечению безопасности учтены уникальные потребности приложений ASP.NET Core.
Книга адресована опытным разработчикам ASP.NET Core.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Кристиан Венц Безопасность ASP.NET Core
ASP.NET Core Security CHRISTIAN WENZ
Безопасность ASP.NET Core КРИСТИАН ВЕНЦ Москва, 2023
УДК 004.04 ББК 32.372 В29 Венц К. В29 Безопасность ASP.NET Core / пер. с англ. Д. А. Беликова. – М.: ДМК Пресс, 2023. – 386 с.: ил. ISBN 978-5-93700-176-4 В книге рассматриваются методы защиты веб-приложений ASP.NET Core: безопасное взаимодействие с браузером, распознавание и предотвращение распространенных угроз, развертывание уникальных API безопасности этого фреймворка. Приводятся способы написания безопасного кода и примеры с аннотациями, а также полное описание встроенных инструментов безопасности ASP.NET Core. Обсуждаются реальные нарушения в системе безопасности, включая мошеннические расширения Firefox и кражу паролей в Adobe. В универсальных рекомендациях по обеспечению безопасности учтены уникальные потребности приложений ASP.NET Core. Книга адресована опытным разработчикам ASP.NET Core. УДК 004.04 ББК 32.372 Copyright © DMK Press 2023. Authorized translation of the English edition © 2022 Manning Publications. This translation is published and sold by permission of Manning Publications, the owner of all rights to publish and sell the same. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-6334-3998-6 (англ.) © Manning Publications, 2022 ISBN 978-5-93700-176-4 (рус.) © Перевод, оформление, издание, ДМК Пресс, 2023
Оглавление Часть I ПЕРВЫЕ ШАГИ......................................................................................... 20 1 О безопасности веб-приложений.................................................................. 21 Часть II НЕЙТРАЛИЗАЦИЯ РАСПРОСТРАНЕННЫХ АТАК.................. 35 2 Межсайтовый скриптинг................................................................................. 36 3 Атака на управление сессиями...................................................................... 74 4 Межсайтовая подделка запросов.................................................................. 93 5 Данные, не прошедшие валидацию............................................................121 6 Внедрение SQL-кода (и другие виды внедрений)....................................142 Часть III БЕЗОПАСНОЕ ХРАНЕНИЕ ДАННЫХ............................................156 7 Хранение секретных данных........................................................................157 8 Работа с паролями............................................................................................185 Часть IV КОНФИГУРИРОВАНИЕ.......................................................................208 9 HTTP-заголовки................................................................................................209 10 Обработка ошибок...........................................................................................224 11 Журналирование и проверка работоспособности...................................236 Часть V АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ.....................................256 12 Защита веб-приложений с помощью ASP.NET Core Identity.................257 13 Защита API и одностраничных приложений............................................291 Часть VI БЕЗОПАСНОСТЬ КАК ПРОЦЕСС....................................................338 14 Безопасные зависимости...............................................................................339 15 Инструменты аудита.......................................................................................350 16 OWASP Top 10....................................................................................................369
Содержание Вступительное слово от сообщества..........................................................11 Введение............................................................................................................. 12 Об этой книге.................................................................................................... 14 Об авторе.......................................................................................................... 18 Об иллюстрации на обложке.......................................................................... 19 Часть I ПЕРВЫЕ ШАГИ....................................................................... 20 1 О безопасности веб-приложений............................................ 21 1.1 ASP.NET Core: история и фреймворки............................................ 22 1.1.1 История версий ASP.NET Core.................................................. 23 1.1.2 MVC.............................................................................................. 23 1.1.3 Razor Pages.................................................................................. 26 1.1.4 Веб-API........................................................................................ 27 1.1.5 Blazor........................................................................................... 29 1.2 Выявление и нейтрализация угроз.................................................. 30 1.2.1 Компоненты веб-приложений................................................... 30 1.2.2 Эшелонированная защита........................................................ 32 1.3 API, предназначенные для выполнения функций безопасности......................................................................................... 33 1.4 Безопасность важна............................................................................. 33 Резюме............................................................................................................... 34 Часть II НЕЙТРАЛИЗАЦИЯ РАСПРОСТРАНЕННЫХ АТАК................................. 35 2 Межсайтовый скриптинг............................................................. 36 2.1 Анатомия атаки с использованием межсайтового скриптинга............................................................................................. 37
Содержание 2.2 Предотвращение межсайтового скриптинга................................ 44 2.2.1 Правило ограничения домена.................................................... 44 2.2.2 Экранирование HTML................................................................ 46 2.2.3 Экранирование в другом контексте........................................ 50 2.3 Политика безопасности контента.................................................... 53 2.3.1 Пример приложения................................................................... 54 2.3.2 Как работает CSP..................................................................... 55 2.3.3 Рефакторинг приложений для CSP........................................... 57 2.3.4 Рекомендации по CSP................................................................. 65 2.3.5 Функциональные возможности CSP третьего уровня........... 68 2.4 Дополнительные меры безопасности, предоставляемые браузерами............................................................................................ 70 Резюме............................................................................................................... 73 3 Атака на управление сессиями................................................ 74 3.1 Анатомия атаки.................................................................................... 75 3.1.1 Кража сеансовых файлов cookie................................................ 77 3.1.2 Файлы cookie и управление сессиями........................................ 78 3.2 Файлы cookie и параметры сессий ASP.NET Core......................... 81 3.3 Поддержка протокола HTTPS............................................................ 85 3.4 Обнаружение перехвата сессий........................................................ 90 Резюме............................................................................................................... 91 4 Межсайтовая подделка запросов........................................... 93 4.1 Анатомия межсайтовой подделки запросов................................. 94 4.2 Меры противодействия для защиты от межсайтовой подделки запросов..............................................................................102 4.2.1 Делаем HTTP-запрос непредсказуемым..................................102 4.2.2 Защита сеансового файла cookie.............................................106 4.3 Кликджекинг........................................................................................108 4.4 Совместное использование ресурсов между разными источниками....................................................................................................112 Резюме..............................................................................................................119 5 Данные, не прошедшие валидацию.......................................121 5.1 Взгляд на HTTP....................................................................................122 5.2 Валидация в ASP.NET Core................................................................126 5.3 Массовое переназначение параметров.........................................130 5.4 Безопасная десериализация.............................................................137 Резюме..............................................................................................................141 6 Внедрение SQL-кода (и другие виды внедрений)........142 6.1 Анатомия атаки с использованием внедрения SQL-кода.........143 6.2 Подготовленные инструкции...........................................................146 6.3 Entity Framework Core.........................................................................149
Содержание 6.4 Внешние сущности XML....................................................................151 6.5 Другие виды внедрений....................................................................153 Резюме..............................................................................................................154 Часть III БЕЗОПАСНОЕ ХРАНЕНИЕ ДАННЫХ.............156 7 Хранение секретных данных.....................................................157 7.1 О шифровании.....................................................................................158 7.2 Secret Manager......................................................................................161 7.3 Файл appsettings.json.........................................................................164 7.4 Хранение секретов в облаке.............................................................167 7.4.1 Хранение секретов в Azure.......................................................168 7.4.2 Хранение секретов в AWS.........................................................172 7.4.3 Хранение секретов в Google Cloud...........................................174 7.5 Использование API, обеспечивающего защиту данных............177 7.6 Локальное хранение секретов с помощью Blazor.......................181 Резюме..............................................................................................................184 8 Работа с паролями............................................................................185 8.1 От утечки данных до кражи паролей.............................................186 8.2 Реализация хеширования паролей.................................................190 8.2.1 MD5 (и почему не стоит его использовать)...........................192 8.2.2 PBKDF2.......................................................................................195 8.2.3 Argon2.........................................................................................199 8.2.4 scrypt...........................................................................................201 8.2.5 bcrypt...........................................................................................202 8.3 Анализ шаблонов ASP.NET Core.......................................................204 Резюме..............................................................................................................207 Часть IV КОНФИГУРИРОВАНИЕ................................................208 9 HTTP-заголовки....................................................................................209 9.1 Сокрытие информации о сервере...................................................211 9.2 Заголовки безопасности браузера..................................................213 9.2.1 Заголовок Referrer-Policy...........................................................214 9.2.2 Заголовки Feature-Policy и Permissions-Policy.........................217 9.2.3 Предотвращение сканирования содержимого файла............218 9.2.4 Политики CORS.........................................................................220 9.2.5 Дополнительные заголовки......................................................221 Резюме..............................................................................................................223 10 Обработка ошибок............................................................................224 10.1 Страницы ошибок для веб-приложений.......................................225 10.1.1 Собственные страницы ошибок..............................................227
Содержание 10.1.2 Страницы ошибок для заданных кодов состояния................230 10.2 Обработка ошибок в API....................................................................232 Резюме..............................................................................................................235 11 Журналирование и проверка работоспособности..........................................................................236 11.1 Проверка работоспособности..........................................................237 11.1.1 Настройка проверки работоспособности.............................237 11.1.2 Расширенная проверка работоспособности..........................240 11.1.3 Форматирование вывода.........................................................242 11.1.4 Пользовательский интерфейс проверки работоспособности..................................................................243 11.2 Журналирование.................................................................................247 11.2.1 Создание записей журнала.......................................................248 11.2.2 Уровни сообщения журнала......................................................250 11.2.3 Области журналирования........................................................252 Резюме..............................................................................................................255 Часть V АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ....256 12 Защита веб-приложений с помощью ASP.NET Core Identity.......................................................................257 12.1 Настройка ASP.NET Core Identity.....................................................258 12.2 Основы ASP.NET Core Identity..........................................................262 12.3 Расширенные возможности ASP.NET Core Identity.....................271 12.3.1 Параметры пароля...................................................................272 12.3.2 Параметры файлов cookie........................................................274 12.3.3 Блокировка пользователей.......................................................275 12.3.4 Работа с утверждениями.........................................................276 12.3.5 Двухфакторная аутентификация..........................................279 12.3.6 Аутентификация с внешними поставщиками......................284 Резюме..............................................................................................................289 13 Защита API и одностраничных приложений.............291 13.1 Защита API с помощью токенов......................................................292 13.2 OAuth и OpenID Connect....................................................................303 13.2.1 OAuth и OpenID Connect............................................................304 13.2.2 Потоки OAuth............................................................................305 13.3 Защита приложений...........................................................................308 13.3.1 Сторонние инструменты........................................................308 13.3.2 Учетные данные клиента........................................................310 13.3.3 Код авторизации + PKCE..........................................................317 13.3.4 Одностраничные приложения и паттерн Backend-for-Frontend.................................................................325 Резюме..............................................................................................................337
Содержание Часть VI БЕЗОПАСНОСТЬ КАК ПРОЦЕСС........................338 14 Безопасные зависимости..............................................................339 14.1 Использование команды npm audit................................................340 14.2 Поддержание зависимостей NuGet в актуальном состоянии..............................................................................................344 Резюме..............................................................................................................349 15 Инструменты аудита....................................................................350 15.1 Поиск уязвимостей.............................................................................351 15.2 OWASP ZAP...........................................................................................353 15.3 Security Code Scan................................................................................359 15.4 GitHub Advanced Security...................................................................363 Резюме..............................................................................................................367 16 OWASP Top 10.........................................................................................369 16.1 OWASP Top 10.......................................................................................370 16.1.1 Процесс создания списка OWASP Top 10..............................370 16.1.2 № 1: Нарушение контроля доступа....................................372 16.1.3 № 2: Криптографические ошибки........................................373 16.1.4 № 3: Внедрение.......................................................................373 16.1.5 № 4: Небезопасный дизайн....................................................374 16.1.6 № 5: Ошибки настроек безопасности.................................374 16.1.7 № 6: Уязвимые и устаревшие компоненты........................375 16.1.8 № 7: Ошибки идентификации и аутентификации............375 16.1.9 № 8: Ошибки программного обеспечения и целостности данных..........................................................375 16.1.10 № 9: Ошибки журналирования и мониторинга..................376 16.1.11 № 10: Подделка запросов со стороны сервера....................376 16.2 OWASP API Top 10................................................................................378 16.3 Другие списки......................................................................................379 Резюме..............................................................................................................381 Предметный указатель.................................................................................383