doc: результаты код-ревью v2
This commit is contained in:
@@ -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 без таймаута | 🟡 |
|
||||
Reference in New Issue
Block a user