Назначение: получить практический опыт разработки безопасного backend-приложения с автоматизированной проверкой кода на уязвимости. Освоить принципы защиты от OWASP Top 10 и интеграцию инструментов безопасности в процесс разработки.
API реализовано с использованием Node.js + Express
Модули:
features- основная единица функционалаuser-pofile- работа с данными пользователяuser-authentication- работа с данными авторизации пользователя
middleware- прослойки для валидации запросов и безопасностиutils- общие утилитыdatabase- прослойка для работы с БДapp- основной сервер приложенияroutes- эндпоинты для обработки запросов
Для хранения данных используется PostgreSQL
Методы:
POST /api/login- для авторизации пользователя
{
"email": "string",
"password": "string"
}Только вторизованным пользователям:
GET /api/data- получение списка всех пользователейGET /api/data/:id- получение данных конкретного пользователя
Модель данных пользователя:
model UserProfile {
id String @id @default(cuid(2))
email String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String @default("")
hashedPassword String
}- Развернуть базу данных локально
docker-compose up - Создать
.envна основе.env.example npm run prisma:setupnpm run start
Защита от SQL-инъекций: для работы с БД используется ORM Prisma. Доказательство безопасности модуля можно найти тут
Защита от XSS: для валидации входных данных используется Zod + zod-xss-sanitizer
Защита от Broken Authentication:
- При авторизации / регистрации в куки выставляется
jwtтокен Middlewareпроверяет валидность токена из куки в каждом запросе- Пароли хэшируются алгоритмом
bcrypt
Настроен пайплайн анализа кода на уязвимости
Static Application Testing: npm audit --audit-level=high

Software Composition Analysis: snyk test

После npm audit fix

