doc: результаты код-ревью v2

This commit is contained in:
“Naeel”
2026-08-09 10:03:53 +04:00
parent 3d290ba317
commit 6e1ce97f14
+43
View File
@@ -0,0 +1,43 @@
# Code Review v2 — Результаты (Соннет, 2026-08-09)
## 1. proxyHandler стриминг — ✅ OK
Цикл Read/Write/Flush корректен. Обрыв соединения обработан.
⚠️ Нет таймаута — `context.Background()` без дедлайна. При зависании S3 горутина повиснет навсегда.
📎 `?bucket=` в URL игнорируется (безопасно), можно убрать из download_url.
## 2. /debug — 🔴 КРИТИЧНО
**Утечка секретов.** Фильтр `strings.Contains(e, "S3_")` захватывает `S3_ACCESS_KEY` и `S3_SECRET_KEY` — выводятся в открытом виде.
**Фикс:** исключить ключи из вывода.
## 3. main.go ~430 строк — ✅ OK
Дробить рано. Порог ~700-1000 строк. gpg_key.go и docs.go уже выделены правильно.
## 4. embed logo.svg — ✅ OK
Нормально. SVG < 5KB на бинарник не влияет.
## 5. S3_PREFIX в Dockerfile — ✅ Конфиг
ENV в Dockerfile = default, переопределяется через jsonEnv. Не хардкод.
## 6. defer внутри if — ✅ OK
defer привязан к функции, не к блоку. Корректно.
## 7. Dockerfile go.mod/go.sum — ✅ OK
Канонический паттерн. Билд воспроизводимый.
## 8. Перед продом
| # | Проблема | Риск |
|---|----------|------|
| 1 | `/debug` — утечка S3 ключей | 🔴 Критично |
| 2 | `proxyHandler` — нет таймаута на S3 | 🟡 |
| 3 | `proxyHandler` — key не валидируется по s3Prefix | 🟡 |
| 4 | Платформы hardcoded | 🟢 |
| 5 | `readyz` BucketExists без таймаута | 🟡 |