# 34 — Hardening e review di sicurezza Leggi `CLAUDE.md`. ## Obiettivo Revisione finale prima del go-live. **Prima produci un report, poi applica le correzioni una per una.** ## Checklist da verificare (e correggere) - Ogni route `private/` e `admin/` ha autenticazione e controllo ruolo; ogni risorsa ha controllo ownership. - Tutti gli input validati da schema; nessuna query SQL costruita concatenando stringhe. - Rate limit su auth, form pubblici, configuratore, upload. - CORS limitato alle due origini; cookie `Secure`, `httpOnly`, `SameSite` corretti; nessun token in localStorage. - Upload: whitelist MIME, dimensione, nomi rigenerati, nessun path traversal. - HTML del blog sempre sanitizzato; nessun `innerHTML`/`bypassSecurityTrust*` su contenuti non sanitizzati nei frontend. - Webhook (Medusa e Stripe) con verifica firma e idempotenza. - Segreti: nessuno nel repo o nei log; `npm audit` senza vulnerabilità alte/critiche. - Errori in produzione senza stack trace; log senza password, token, dati carta. - Cookie banner: nessun cookie non tecnico prima del consenso. - Database: utente applicativo senza privilegi di superuser; Medusa e app su utenti distinti. ## Criteri di accettazione - Report `SECURITY_REVIEW.md` con esito di ogni voce (ok / corretto / da fare) e motivazione. - Tutti i test esistenti passano dopo le correzioni. - `CLAUDE.md` aggiornato con i punti rimasti aperti.