Вход администратора 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
Вход администратора проходит через login_throttle (пара IP+логин, IP и сам аккаунт); неудачные попытки пишутся в аудит. Тест: серия неудач → 429. Мёрж и закрытие — за вами.
F1 реализовано в PR #63 — https://gitea.arseniev.info/NotBigGhost/ForbiddenStarsApp/pulls/63
Вход администратора проходит через `login_throttle` (пара IP+логин, IP и сам аккаунт); неудачные попытки пишутся в аудит. Тест: серия неудач → 429. Мёрж и закрытие — за вами.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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).
F1 реализовано в PR #63 — #63
Вход администратора проходит через
login_throttle(пара IP+логин, IP и сам аккаунт); неудачные попытки пишутся в аудит. Тест: серия неудач → 429. Мёрж и закрытие — за вами.