Autenticazione e identità
Controllo accessi e protezione delle credenziali
JWT e sessioni
Token JWT con scadenza configurabile (es. 8h, 15m, 7d). Cookie httpOnly per il token, allineamento maxAge cookie alla scadenza JWT. Middleware di autenticazione su tutte le route protette.
Autenticazione a due fattori (2FA)
2FA con TOTP (speakeasy) e QR Code per la configurazione. Flag twoFactorVerified nel token. Supporto recupero e reset password con flussi sicuri.
Password e hash
Hash delle password con bcrypt (round 10). Nessuna password in chiaro. Validazione e policy per reset e cambio password.
Protezione applicativa
Header, limiti e validazione
Helmet e security headers
Middleware Helmet per header di sicurezza (X-Content-Type-Options, X-Frame-Options, CSP, ecc.). Configurazione centralizzata in appConfig per ambienti diversi.
Rate limiting
Rate limiter con Redis (distribuito tra istanze) e fallback in-memory. Limiti standard e strict per login e API sensibili. Eventi superamento limiti loggati tramite security logger.
CORS e cookie
CORS configurato per domini autorizzati. Cookie parser per gestione sicura dei cookie. Limite dimensione body JSON configurabile per mitigare payload eccessivi.
Dati e audit
Crittografia e tracciabilità
-
✓
Query parametrizzate Uso sistematico di query parametrizzate (PostgreSQL, Oracle) per prevenire SQL injection. Validazione input con Joi/Zod e sanitizzazione.
-
✓
Crittografia dati sensibili Modulo Encryption per dati sensibili. Nessuna esposizione di stack trace o informazioni riservate nelle risposte di errore.
-
✓
Security logger e audit Security logger dedicato per eventi di sicurezza (rate limit, login, ecc.). Request ID per tracciabilità. Log in italiano per audit.
-
✓
API tokens Supporto API tokens per integrazioni machine-to-machine. Gestione e revoca da interfaccia admin.
Conformità e best practice
Allineamento agli standard di settore
L'architettura MonixGuard segue le linee guida OWASP per applicazioni web sicure. HTTPS è obbligatorio in produzione. Gli endpoint sensibili sono protetti da autenticazione e rate limiting; i messaggi di errore non espongono dettagli interni. Per report e verifiche di sicurezza contatta il team.