Il go-live è il momento di massima esposizione. Ogni configurazione dimenticata, ogni header mancante, ogni credenziale esposta diventa una vulnerabilità reale. Questa checklist è il vostro gate di sicurezza prima della produzione.
Infrastruttura
Rete e accesso
- HTTPS obbligatorio su tutti gli endpoint (TLS 1.2+ minimo)
- Certificato SSL/TLS valido e con rinnovo automatico
- Firewall configurato (solo porte necessarie aperte)
- SSH con chiave pubblica (password disabilitata)
- VPN o IP whitelisting per accesso admin
- Rate limiting configurato sui reverse proxy
- DDoS protection attiva (Cloudflare o equivalente)
Server
- Sistema operativo aggiornato con patch di sicurezza
- Servizi non necessari disabilitati
- Utente non-root per l'applicazione
- Log centralizzati e protetti da manipolazione
- Monitoraggio uptime e risorse configurato
- Backup automatici testati e funzionanti
Docker / Container
- Immagini base aggiornate e scansionate per vulnerabilità
- Container eseguiti con utente non-root
- Nessun segreto hardcoded nelle immagini
- Health check configurati
- Limiti di risorse (CPU, memoria) impostati
- Network isolation tra container
Applicazione
Autenticazione
- Password con requisiti minimi (lunghezza ≥12, complessità)
- Hash delle password con bcrypt/argon2 (costo ≥10)
- MFA disponibile (obbligatorio per admin)
- Sessioni con scadenza ragionevole (15-30 min inattività)
- Invalidazione sessione al logout
- Protezione brute force (account lockout dopo N tentativi)
- Reset password sicuro (token monouso con scadenza)
Autorizzazione
- Principio del minimo privilegio applicato
- Controllo autorizzazione su ogni endpoint (non solo autenticazione)
- RBAC o ABAC implementato e testato
- Endpoint admin separati e protetti
- Nessun IDOR (Insecure Direct Object Reference)
Validazione input
- Validazione lato server su tutti gli input (Zod, Joi, ecc.)
- Sanitizzazione dell'output (prevenzione XSS)
- Query parametrizzate (prevenzione SQL injection)
- Upload file validati (tipo, dimensione, contenuto)
- Content-Type verificato su ogni richiesta
Header di sicurezza
-
Strict-Transport-Security(HSTS) -
Content-Security-Policy(CSP) -
X-Content-Type-Options: nosniff -
X-Frame-Options: DENY -
Referrer-Policy: strict-origin-when-cross-origin -
Permissions-Policyconfigurato -
X-XSS-Protection: 0(obsoleto ma non dannoso)
Cookie
- Flag
Securesu tutti i cookie - Flag
HttpOnlysui cookie di sessione -
SameSite=StrictoLaxconfigurato - Durata cookie proporzionata alla finalità
- Nessun dato sensibile nei cookie
Gestione errori
- Messaggi di errore generici per l'utente (nessun dettaglio tecnico)
- Stack trace disabilitati in produzione
- Errori loggati lato server con contesto sufficiente
- Pagine di errore personalizzate (404, 500)
- Nessuna informazione sul server negli header (
Server,X-Powered-Byrimossi)
Dati e segreti
Segreti
- Nessun segreto nel codice sorgente
- Variabili d'ambiente per credenziali
- File
.envin.gitignore - Segreti ruotati rispetto allo sviluppo
- Chiavi API con permessi minimi
- Nessun segreto nei log
Database
- Credenziali database dedicate per l'applicazione (non root)
- Connessione database crittografata (SSL)
- Query parametrizzate ovunque
- Backup automatico con retention policy
- Dati sensibili crittografati a riposo
- Accesso database non esposto pubblicamente
GDPR / Privacy
- Informativa privacy aggiornata e accessibile
- Banner cookie conforme (Garante Privacy)
- Registro dei trattamenti aggiornato
- DPA firmati con tutti i fornitori che trattano dati
- Procedura per esercizio diritti degli interessati
- Log degli accessi ai dati personali
API
- Autenticazione su tutti gli endpoint non pubblici
- Rate limiting per endpoint
- CORS configurato con origini specifiche
- Validazione input su ogni endpoint
- Paginazione con limiti massimi
- Versioning dell'API
- Documentazione OpenAPI aggiornata
Monitoraggio e risposta
Logging
- Log strutturati (JSON)
- Nessun dato personale nei log (PII)
- Nessuna password o token nei log
- Retention dei log definita
- Log centralizzati e ricercabili
Alerting
- Allarme su errori 500 anomali
- Allarme su tentativi di accesso falliti massivi
- Allarme su certificato SSL in scadenza
- Allarme su utilizzo risorse anomalo
- Procedura di risposta agli incidenti documentata
Scansione
- Scansione vulnerabilità automatizzata (dipendenze)
- Scansione header di sicurezza
- Test di penetrazione effettuato
- OWASP Top 10 verificato
Pipeline CI/CD
- Scansione dei segreti nel codice (pre-commit hook)
- Analisi statica del codice (SAST)
- Scansione delle dipendenze (SCA)
- Test di sicurezza automatizzati nella pipeline
- Deploy automatizzato con rollback
- Nessun accesso manuale al server di produzione
Processo di validazione
Prima del go-live, fate passare questa checklist con:
- Lo sviluppatore verifica l'applicazione
- Il DevOps verifica l'infrastruttura
- Un revisore indipendente effettua una review
- Una scansione automatizzata conferma i controlli tecnici
Solo quando tutti e quattro hanno validato, il go-live è autorizzato.
Scansiona il tuo sito web gratis con WarDek — OWASP, NIS2, GDPR, AI Act in un'unica scansione.