Хардненинг: fail-fast на дефолтных SECRET_KEY / ADMIN_PASSWORD в проде (F4) #59

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

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

core/config.py задаёт дефолты secret_key="change-me-dev-secret-not-for-production" и admin_password="change-me-admin-password". bootstrap.py:_ensure_admin отклоняет лишь пустой пароль админа, но не дефолтный, и ничто не проверяет SECRET_KEY. Деплой, скопировавший .env.example дословно (или забывший поле), стартует в production с известным всем ключом подписи JWT (→ подделка любого токена, включая админский) и известным паролем администратора.

(Секреты прода в рамках #25 не читались — проверяется само отсутствие защиты от дефолта.)

Рекомендация: при settings.is_production падать на старте (в config или bootstrap), если SECRET_KEY/ADMIN_PASSWORD равны дефолтам или короче безопасного минимума.

Обнаружено при работе над #25 (находка F4).

**Severity (предложение): High (misconfiguration).** `core/config.py` задаёт дефолты `secret_key="change-me-dev-secret-not-for-production"` и `admin_password="change-me-admin-password"`. `bootstrap.py:_ensure_admin` отклоняет лишь **пустой** пароль админа, но не дефолтный, и ничто не проверяет `SECRET_KEY`. Деплой, скопировавший `.env.example` дословно (или забывший поле), стартует в `production` с известным всем ключом подписи JWT (→ подделка любого токена, включая админский) и известным паролем администратора. *(Секреты прода в рамках #25 не читались — проверяется само отсутствие защиты от дефолта.)* **Рекомендация:** при `settings.is_production` падать на старте (в `config` или `bootstrap`), если `SECRET_KEY`/`ADMIN_PASSWORD` равны дефолтам или короче безопасного минимума. Обнаружено при работе над #25 (находка F4).
Agent added this to the 1.37 - смена аутентификации и смежный пен тест milestone 2026-09-13 16:17:51 +03:00
Agent added the Kind/Security label 2026-09-13 16:17:51 +03:00
Agent self-assigned this 2026-09-13 17:00:16 +03:00
Agent added the
Reviewed
Confirmed
1
label 2026-09-13 17:00:17 +03:00
Agent added the
Status
In Review
label 2026-09-13 17:25:31 +03:00
Author
Collaborator

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

Settings (model_validator) при APP_ENV=production не даёт стартовать с дефолтным/коротким SECRET_KEY и дефолтным/пустым ADMIN_PASSWORD. dev/test не затронуты. Мёрж и закрытие — за вами.

F4 реализовано в PR #63 — https://gitea.arseniev.info/NotBigGhost/ForbiddenStarsApp/pulls/63 `Settings` (model_validator) при `APP_ENV=production` не даёт стартовать с дефолтным/коротким `SECRET_KEY` и дефолтным/пустым `ADMIN_PASSWORD`. dev/test не затронуты. Мёрж и закрытие — за вами.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: NotBigGhost/ForbiddenStarsApp#59