docs(security): correzione severita finding 1 + chiusura punti Coolify
CORREZIONE: la password Postgres trovata in git NON era attiva. La verifica iniziale si limitava a constatare che la stringa comparisse in .env.local e ne deduceva che fosse quella viva. Il confronto del verifier SCRAM-SHA-256 di pg_authid contro i due candidati mostra che quella committata non combacia: era gia stata ruotata. La voce DATABASE_URL porta 5432 di .env.local e' stale. Severita' reale: BASSA, non CRITICA. Nessuna rotazione necessaria. Chiusi via API Coolify: INTERNAL_SECRET creata (le route /api/internal/* rispondono ora 403 invece di 404, oracolo di enumerazione token chiuso) e ADMIN_PASSWORD portata da 15 a 32 caratteri. Redeploy verificato. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -9,7 +9,23 @@ configurazione di deploy e superficie di rete in produzione.
|
||||
|
||||
---
|
||||
|
||||
## 1. CRITICO — Password Postgres di produzione committata in chiaro
|
||||
## 1. ~~CRITICO~~ → BASSO — Password Postgres **storica** committata in chiaro
|
||||
|
||||
> **CORREZIONE (2026-07-28).** La prima stesura di questa sezione dichiarava la credenziale
|
||||
> "ancora attiva". **Era sbagliato.** La verifica iniziale si limitava a constatare che la
|
||||
> stringa comparisse anche in `.env.local`, e ne deduceva che fosse quella viva.
|
||||
>
|
||||
> Verifica corretta, fatta poi: confronto del **verifier SCRAM-SHA-256** di `pg_authid` contro
|
||||
> i due candidati. La password committata **non** combacia; quella in uso è la password da 48
|
||||
> caratteri configurata su Coolify. Era già stata ruotata in passato.
|
||||
>
|
||||
> La voce `DATABASE_URL` porta 5432 di `.env.local` è **stale** — residuo storico, non la
|
||||
> connessione di produzione (che passa dall'hostname interno del container).
|
||||
>
|
||||
> **Severità reale: BASSA.** Credenziale storica in un repo privato, già morta. Igiene, non
|
||||
> incidente. Nessuna rotazione urgente. Resta utile ripulire `.env.local` dalla voce stale.
|
||||
>
|
||||
> Il resto della sezione è conservato come traccia di ciò che è stato trovato.
|
||||
|
||||
**Dove:**
|
||||
- `.planning/phases/07-unified-service-catalog/07-01-SUMMARY.md:188,195,202`
|
||||
|
||||
@@ -10,10 +10,10 @@ Restano aperti solo i punti che richiedono accesso a Coolify o una tua decisione
|
||||
|
||||
| # | Intervento | Stato |
|
||||
|---|---|---|
|
||||
| 0.1 | Ruotare password Postgres prod | ⛔ **richiede te** (no accesso Coolify) |
|
||||
| 0.1 | Ruotare password Postgres prod | ❎ **non serve** — la password leakata risulta già morta (vedi correzione in INFRA §1) |
|
||||
| 0.1b | Espurgare la password dai due `07-01-SUMMARY.md` | ✅ fatto |
|
||||
| 0.2 | `INTERNAL_SECRET` in Coolify | ⛔ **richiede te** |
|
||||
| 0.3 | Allungare `ADMIN_PASSWORD` | ⛔ **richiede te** |
|
||||
| 0.2 | `INTERNAL_SECRET` in Coolify | ✅ fatto 2026-07-28 — le route interne ora danno 403 |
|
||||
| 0.3 | Allungare `ADMIN_PASSWORD` | ✅ fatto 2026-07-28 — 15 → 32 caratteri |
|
||||
| 1.1 | Next → 16.2.12, next-auth → 4.24.15 | ✅ fatto |
|
||||
| 1.2 | Secondo gate di autenticazione admin | ✅ fatto |
|
||||
| 1.3 | Eliminare `src/lib/quote-actions.ts` | ✅ fatto |
|
||||
|
||||
Reference in New Issue
Block a user