C# глазами хакера, Фленов М.Е., 2025.
Подробно рассмотрены все аспекты безопасности от теории до реальных реализаций .NET-приложений на языке С#. Рассказано, как обеспечивать безопасную регистрацию, авторизацию и поддержку сессий пользователей. Перечислены уязвимости, которые могут быть присущи веб-сайтам и Web API, описано, как хакеры могут эксплуатировать уязвимости и как можно обеспечить безопасность приложений. Даны основы оптимизации кода для обработки максимального количества пользователей с целью экономии ресурсов серверов и денег на хостинг. Рассмотрены сетевые функции: проверка соединения, отслеживание запроса, доступ к микросервисам, работа с сокетами и др. Приведены реальные примеры атак хакеров и способы защиты от них. Во втором издании добавлены новые примеры безопасности, рассмотрены вопросы реализации технологий OAuth2 и Single Sign On.

Теория безопасности.
Эту историю я уже приводил в других своих книгах, но люблю ее вспоминать, потому что она родом из 90-х годов прошлого века, и тогда связанное с ней высказывание стало первым ярким эпизодом в моей ИТ-карьере. Думаю, что здесь его можно повторить, потому что до этого я рассказывал о нем только в книгах про другие языки программирования.
Так вот, когда я в те годы еще учился в институте, то на одном из стендов в коридоре прочитал очень интересное высказывание: «Любая программа содержит ошибки. Если в вашей программе их нет, то проверьте программу еще раз. Если снова ошибки не найдены, то вы — плохой программист». И это не шутка, а почти реальность. Программисты — люди, а людям свойственно ошибаться. Каждый день появляются новые виды атак, и чтобы поддерживать программы в безопасном состоянии, приходится регулярно следить за методами, которые используют хакеры, и соответствующим образом корректировать свой исходный код.
ОГЛАВЛЕНИЕ.
Предисловие.
Об авторе.
О книге.
Благодарности.
Глава 1. Теория безопасности.
1.1. Комплексная защита.
1.2. Сдвиг влево.
1.2.1. Обучение.
1.2.2. Сбор требований.
1.2.3. Безопасность на этапе разработки.
1.2.4. Внешние компоненты.
1.2.5. Статические анализаторы кода.
1.2.6. Динамический анализатор кода.
1.2.7. Испытание на проникновение.
1.2.8. Отчеты.
1.3. Проект ОWASP.
1.4. Отказ в обслуживании.
1.5. Управление кодом.
1.6. Стабильность кода: нулевые исключения.
1.7. Исключительные ситуации.
1.8. Журналы ошибок и аудит.
1.9. Ошибки нужно исправлять.
1.10. Отгружаем легко и часто.
1.10.1. Обновление базы данных.
1.10.2. Копирование файлов.
1.10.3. Распределенное окружение.
1.11. Шифрование трафика.
1.12. POST или GET?.
1.13. Ограничение времени выполнения.
1.14. Кто проверяет данные?.
Глава 2. Аутентификация и авторизация.
2.1. Шаблон приложения.
2.2. Регистрация пользователей.
2.3. Форма регистрации.
2.3.1. Корректные данные регистрации.
2.3.2. Email с плюсом и точкой.
2.4. Хранение паролей.
2.4.1. Хеширование.
2.4.2. МD5-хешированне.
2.4.3. Безопасное хеширование.
2.4.4. И еще немного о безопасности.
2.5. Создание посетителей.
2.6. Captcha.
2.6.1. Настраиваем Google rеСАРТСНА.
2.6.2. Пример использования rеСАРТСНА.
2.6.3. Отменяем капчу.
2.7. Аутентификация.
2.7.1. Базовая аутентификация.
2.7.2. Журналирование и защита от перебора.
2.7.3. Защищаемся от перебора.
2.8. Запомни меня.
2.8.1. Зашифрованный якорь.
2.8.2. Опасность HttpOnly.
2.8.3. Уникальные токены.
2.9. Автозаполнение.
2.10. Авторизация.
2.11. Железобетонная проверка.
2.12. Протокол OAuth.
2.12.1. Конфигурирование приложения «Яндекс» OAuth.
2.12.2. Создаем клиента.
2.12.3. Что дальше?.
2.13. Делим авторизацию.
2.14. Защита сессии.
2.15. Многоуровневая авторизация.
2.16. Microsoft Identity.
Глава 3. Безопасность.NET-приложений.
3.1. Инъекция SQL: основы.
3.1.1. SQL-уязвнмость в ADO.NET.
3.1.2. Защита отSQL-инъекции.
3.2. Dapper ORM.
3.3. Entity Framework.
3.4. Отправка электронной почты.
3.4.1. Очереди сообщений.
3.4.2. Работа с очередью.
3.4.3. Отправляем письма.
3.5. Подделка параметров.
3.6. Флуд.
3.7. XSS: межсайтовый скриптинг.
3.7.1. Защита от XSS в.NET.
3.7.2. Примеры эксплуатации XSS.
3.7.3. Типы XSS.
3.7.4. Хранимая XSS.
3.7.5. XSS: текст внутри тега.
3.7.6. Скрипты.
3.7.7. Атака через промежуточный слой.
3.7.8. HTML-расширения.
3.7.9. Вывод из контроллера.
3.7.10. Эксплуатация XSS-уязвимости.
3.8. Политика безопасности контента.
3.8.1. CORS на страже контента.
3.8.2. Источники загрузки.
3.8.3. Тестирование политики.
3.8.4. Разрешенные источники.
3.9. SQL Injection: доступ к недоступному.
3.10. CSRF: межсайтовая подделка запроса.
3.11. Загрузка файлов.
3.12. Переадресация.
3.13. Защита от DoS.
3.14. Кликджекинг.
Глава 4. О производительности в целом.
4.1. Основы.
4.2. Когда нужно оптимизировать?.
4.3. Оптимизация и рефакторинг.
4.4. Отображение данных.
4.5. Асинхронное выполнение запросов.
4.6. Параллельное выполнение.
4.7. LINQ.
4.8. Обновление.NET.
Глава 5. Производительность в.NET.
5.1. Типы данных.
5.1.1. Производительность.
5.1.2. Отличие структур от классов.
5.1.3. Ссылки на структуры.
5.2. Виртуальные методы.
5.3. Управление памятью.
5.4. Закрытие соединений с базой данных.
5.5. Циклы.
5.6. Строки.
5.7. Исключительные ситуации.
5.8. Странный HttpCIient.
5.9. Класс ArrayPool.
5.10. Параметризованные запросы к БД.
Глава 6. Сеть.
6.1. Проверка соединения.
6.2. Отслеживание запроса.
6.3. Класс НТТР-клиент.
6.4. Класс Uri.
6.5. Уровень розетки.
6.5.1. Сервер.
6.5.2. Клиент.
6.6. Доменная система имен.
Глава 7. Web API.
7.1. Пример Web API.
7.2. JWT-токены.
7.3. Устройство токенов.
7.4. Авторизация API.
7.5. XSS и Web API.
Глава 8. Трюки.
8.1. Кеширование.
8.1.1. Кеширование результата.
8.1.2. Кеширование статичными переменными.
8.1.3. Кеширование уровня запроса.
8.1.4. Кеширование в памяти.
8.1.5. Сервер кеширования.
8.1.6. Cookie в качестве кеша.
8.2. Сессии.
8.2.1. Пишем свою сессию.
8.2.2. Безопасность сессии.
8.2.3. Сессия в качестве кеша.
8.2.4. Уничтожение сессии.
8.2.5. Выход.
8.2.6. Кукушка для сессии.
8.2.7. Преимущества и недостатки.
8.3. Защита от множественной обработки.
Заключение.
Литература.
Приложение. Описание файлового архива, сопровождающего книгу.
Предметный указатель.
Ниже можно купить эту книгу, если она есть в продаже, и похожие книги по лучшей цене со скидкой с доставкой по всей России.Купить книги
Купить .
По кнопкам выше и ниже «Купить бумажную книгу» и по ссылке «Купить» можно купить эту книгу с доставкой по всей России и похожие книги по самой лучшей цене в бумажном виде на сайтах официальных интернет магазинов Лабиринт, Озон, Буквоед, Читай-город, Литрес, My-shop, Book24, Books.ru.
По кнопке «Купить и скачать электронную книгу» можно купить эту книгу в электронном виде в официальном интернет магазине «Литрес», если она у них есть в наличии, и потом ее скачать на их сайте.
По кнопке «Найти похожие материалы на других сайтах» можно найти похожие материалы на других сайтах.
On the buttons above and below you can buy the book in official online stores Labirint, Ozon and others. Also you can search related and similar materials on other sites.
Теги: учебник по программированию :: программирование :: Фленов












