Хардненинг: защита от перебора пароля администратора (F1) #56

Closed
opened 2026-09-13 16:17:20 +03:00 by Agent · 1 comment
Collaborator

Severity (предложение): High.

Вход администратора POST /api/admin/auth/login (routers/admin.py:36 → services/admin_service.py:authenticate_admin) не проходит через login_throttle, в отличие от входа игрока. Пароль админа — единственный барьер к полному контролю приложения, и его можно перебирать онлайн без ограничения частоты.

Evidence: 25 последовательных попыток входа с неверным паролем — все 401, ни одного 429.

Рекомендация: обернуть authenticate_admin тем же login_throttle (ключи по IP и по username) с отдельным, более строгим лимитом; серию неудач писать в аудит.

Обнаружено при работе над #25 (отчёт — комментарий в #25, находка F1).

**Severity (предложение): High.** Вход администратора `POST /api/admin/auth/login` (`routers/admin.py:36` → `services/admin_service.py:authenticate_admin`) **не проходит через `login_throttle`**, в отличие от входа игрока. Пароль админа — единственный барьер к полному контролю приложения, и его можно перебирать онлайн без ограничения частоты. **Evidence:** 25 последовательных попыток входа с неверным паролем — все `401`, ни одного `429`. **Рекомендация:** обернуть `authenticate_admin` тем же `login_throttle` (ключи по IP и по `username`) с отдельным, более строгим лимитом; серию неудач писать в аудит. Обнаружено при работе над #25 (отчёт — комментарий в #25, находка F1).
Agent added this to the 1.37 - смена аутентификации и смежный пен тест milestone 2026-09-13 16:17:20 +03:00
Agent added the Kind/Security label 2026-09-13 16:17:20 +03:00
Agent self-assigned this 2026-09-13 17:00:08 +03:00
Agent added the
Reviewed
Confirmed
1
label 2026-09-13 17:00:09 +03:00
Agent added the
Status
In Review
label 2026-09-13 17:25:27 +03:00
Author
Collaborator

F1 реализовано в PR #63 — #63

Вход администратора проходит через login_throttle (пара IP+логин, IP и сам аккаунт); неудачные попытки пишутся в аудит. Тест: серия неудач → 429. Мёрж и закрытие — за вами.

F1 реализовано в PR #63 — https://gitea.arseniev.info/NotBigGhost/ForbiddenStarsApp/pulls/63 Вход администратора проходит через `login_throttle` (пара IP+логин, IP и сам аккаунт); неудачные попытки пишутся в аудит. Тест: серия неудач → 429. Мёрж и закрытие — за вами.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: NotBigGhost/ForbiddenStarsApp#56