SecureWebApp
Введение
SecureWebApp — шаблон безопасного веб-приложения для ASP.NET Core 5.0
Программный проект для курса COMP.SEC.300 Secure Programming, весна 2021 г.
Репозиторий содержит весь исходный код, архитектурную схему и документацию проекта.
Документация
Документация проекта доступна в Documentation.pdf в корне проекта.
Прямая ссылка на проектную документацию ЗДЕСЬ.
Архитектура
Примерная схема архитектуры приложения ниже:
Ссылка на полную картинку здесь.
Настройка локальной среды разработки
- Клонировать репозиторий
- Установите Visual Studio 2019 (рекомендуется Professional/Enterprise)
- Установите необходимые инструменты (инструменты веб-разработки ASP.NET Core, MSSQL
- При необходимости установите Microsoft SQL Server 2019 отдельно.
- Откройте проект (файл решения) SecureWebApp.sln в VS.
- Создайте базу данных и запустите миграцию базы данных, запустив dotnettool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef миграции add InitialCreate обновление базы данных dotnet ef
- Сборка/отладка/запуск проекта локально
- Открыть в браузере: http://localhost:5000 (НЕБЕЗОПАСНО, НЕ РЕКОМЕНДУЕТСЯ) или https://localhost:5001.
Рекомендуемые инструменты и библиотеки для разработки под Windows
- Visual Studio 2019 Pro (все рабочие нагрузки .NET 5.0)
- ASP.NET Core 5.0 (MVC)
- Microsoft SQL Server 2019 (доступна LocalDB для тестирования, интегрирована в Visual Studio)
- Менеджер пакетов Nuget
- Необходимые пакеты nuget, включенные в конфигурации проекта.
- Git Bash для Windows
- Гугл Хром / Мозилла Фаерфокс
Непрерывная интеграция и развертывание
При отправке запросов или запросов на извлечение в основную ветку запускается задание тестирования сборки для сборки проекта в Cloud Runner, запуска всех модульных тестов и проверки их прохождения. После успешного тестового запуска запускается задание развертывания для публикации на частном сервере.
Приложение доступно для живого тестирования на https://securewebapp.peltonet.com/.
Статический анализ
Исходный код проекта анализируется с помощью сервиса SonarQube Cloud (SonarCloud).
SonarCloud интегрируется через GitHub Actions.
URL-адрес для анализа проекта: https://sonarcloud.io/dashboard?id=Sinipelto_securewebapp.