Skip to content

AEKDA/ib1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Secure API (Lab1)

Описание проекта

Проект демонстрирует разработку защищённого REST API на Spring Boot 3 / Java 17 с аутентификацией по JWT.
Включает меры защиты от распространённых веб-уязвимостей, а также автоматическую проверку кода через GitHub Actions

API

Аутентификация и регистрация

POST /auth/register

Регистрация нового пользователя.

Request body:

{
  "username": "newuser",
  "password": "secret"
}

Response 201:

{
  "message": "User registered successfully",
  "token": "<JWT токен>"
}

POST /auth/login

Авторизация существующего пользователя.

Request body:

{
  "username": "newuser",
  "password": "secret"
}

Response 200:

{
  "token": "<JWT токен>"
}

Данные пользователей

Эндпоинт требует Token в заголовке Authorization.

GET /api/data

Возвращает список всех зарегистрированных пользователей:

Headers:

Authorization: Bearer <JWT токен>

Response 200:

[
  {
    "id": 1,
    "username": "user1"
  },
  {
    "id": 2,
    "username": "user2"
  }
]

Реализованные меры защиты

SQL Injection

  • Используется Spring Data JPA, который генерирует подготовленные SQL-запросы.
  • Все параметры подставляются через bind-переменные, что исключает инъекции.

XSS

  • Все возвращаемые имена пользователей экранируются:

    StringEscapeUtils.escapeHtml4(t.getUsername())

    что предотвращает внедрение HTML/JS кода в ответах.

Аутентификация

  • Авторизация через JWT токен:

    • При регистрации или входе генерируется токен (JwtUtil.generateToken).

    • Доступ к защищённым ресурсам только с валидным токеном в заголовке:

      Authorization: <token>
      
  • Секретный ключ хранится в конфигурации и используется для подписи и валидации.

  • Используется валидация входных данных (@Valid + Bean Validation).


CI/CD и автоматический анализ безопасности

В репозитории настроен workflow GitHub Actions:

  • SpotBugs (SAST) — статический анализ кода.
  • OWASP Dependency-Check (SCA) — анализ зависимостей на наличие уязвимостей.

SpotBugs report OWASP Dependency-Check report

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages