Sicurezza e proprieta dei dati
QuoteNode e progettato per organizzazioni che considerano i dati commerciali un asset strategico. Ogni decisione architetturale privilegia isolamento, auditabilita e controllo.
Isolamento single-tenant
Ogni istanza di QuoteNode opera in completo isolamento. Il tuo database, il tuo file storage e il tuo processo applicativo non vengono condivisi con altri clienti. Non esistono mescolanza di dati multi-tenant, pool di connessioni condivisi o rischio di leakage tra tenant.
Non e una promessa di marketing su una “separazione logica”. E isolamento reale a ogni livello.
Deployment self-hosted
Scegli tu dove risiedono i dati. Distribuisci su un tuo server, in un cloud privato o in una rete chiusa senza accesso a internet. QuoteNode funziona interamente offline: niente telemetria, niente callback di analytics, niente ping verso un server licenze.
Il sistema viene distribuito come container Docker con un template Docker Compose. Tu controlli l’infrastruttura, la topologia di rete, la strategia di backup e il perimetro di accesso.
Autenticazione e controllo accessi
- Controllo accessi basato sui ruoli (RBAC) con cinque ruoli: Admin, Manager, Salesperson, Viewer e Public (per i link offerta).
- Controlli autorizzativi per endpoint — ogni chiamata API viene autorizzata in base al ruolo del chiamante.
- Autenticazione basata su sessione con cookie cifrati e durata configurabile.
- Autenticazione a due fattori (TOTP) — opzionale per tutti gli utenti e imponibile agli amministratori.
- Protezione brute-force — blocco account dopo 5 tentativi di accesso falliti consecutivi (cooldown di 30 minuti).
- Whitelist IP — possibilita di limitare l’accesso all’applicazione a IP o range specifici.
Audit trail
Ogni mutazione del sistema viene registrata in un audit log append-only:
- Chi ha eseguito l’azione (ID utente, ruolo, indirizzo IP)
- Cosa e cambiato (tipo entita, ID entita, stato before/after)
- Quando e successo (timestamp lato server)
L’audit log e immutabile: le voci non possono essere modificate o eliminate, nemmeno dagli amministratori. Questo fornisce una catena di custodia verificabile per ogni offerta, record cliente e modifica di configurazione.
Sicurezza delle offerte
I link pubblici delle offerte sono protetti da piu livelli:
- Token crittografici — token casuali a 256 bit, memorizzati nel database solo come hash SHA-256. Il token in chiaro viene restituito una sola volta e non viene mai memorizzato.
- Protezione opzionale con password — i link possono richiedere un PIN hashato con bcrypt.
- Accesso revocabile — ogni link puo essere revocato istantaneamente dal commerciale.
- Rate limiting — limiti per token e per IP riducono gli abusi (60 aperture/ora, 5 azioni/ora).
- Rilevamento bot — validazione temporale e campi honeypot bloccano gli invii automatizzati.
- Tracciamento delle interazioni — ogni apertura, download, risposta e decisione viene registrata con IP anonimizzabile e codice paese GeoIP.
Protezione dei dati
- Cifratura in transito — TLS per tutte le connessioni (reverse proxy via Caddy con HTTPS automatico).
- Cifratura at rest — demandata alla tua infrastruttura (cifratura disco, volumi cifrati).
- Cifratura opzionale dei PII a livello colonna — quando attivata (
ENCRYPT_PII=true), le informazioni personali identificabili (nomi clienti, email, numeri di telefono, identificativi fiscali) vengono cifrate con AES-256-GCM a livello applicativo prima di essere scritte nel database. Blind index (HMAC-SHA256) preservano la possibilita di query esatte senza esporre testo in chiaro. Un validatore all’avvio evita corruzione dei dati dovuta a chiavi errate o cambi accidentali dei flag. - Anonimizzazione IP — job configurabile per applicare hash agli indirizzi IP dopo N giorni ai fini della conformita GDPR.
- Nessuna dipendenza esterna — nessuna analytics di terze parti, nessun tracking pixel o dipendenza CDN nella configurazione predefinita.
- Controlli di retention — periodi configurabili per documenti generati, audit log e dati di tracking.
Backup e disaster recovery
I tuoi dati sono davvero al sicuro solo se puoi ripristinarli:
- Backup giornalieri automatici — dump del database e archivi file pianificati senza downtime (configurabili tramite
BACKUP_CRON). - Cifratura GPG at rest — i backup possono essere cifrati prima dello storage, cosi neppure il tuo provider di storage puo leggere i dati.
- Storage remoto — upload automatico su S3, SFTP, Google Cloud Storage, Azure o uno dei 70+ provider supportati da rclone.
- Verifica di integrita — ogni backup include un manifesto di checksum SHA-256 per rilevare manomissioni.
- Download con un clic — gli amministratori possono scaricare gli archivi di backup direttamente dal pannello admin.
- Policy di retention — pulizia automatica dei backup vecchi per mantenere prevedibile l’uso del disco (predefinito: 7 backup recenti).
- Disaster recovery — uno script di restore dedicato ricostruisce un’istanza completa da un file di backup su un server nuovo con un solo comando.
- Monitoring — il pannello di amministrazione avvisa se i backup sono disabilitati o se non e stato registrato alcun backup riuscito nelle ultime 48 ore.
Per la guida completa a backup e restore, consulta la wiki Backup e ripristino.
Snapshot immutabili delle offerte
Quando un’offerta viene inviata, il sistema cattura uno snapshot completo e immutabile: dati cliente, tutte le righe, prezzi, tassi di cambio, branding e condizioni commerciali. Questo snapshot e la fonte di verita per la generazione PDF e per l’audit.
Gli snapshot non possono essere modificati dopo la creazione. Se un’offerta viene reinviata, viene creata una nuova versione dello snapshot. Questo fornisce una registrazione verificabile di cio che e stato proposto e in quale data.
Sicurezza della licenza
Le licenze QuoteNode sono file firmati con Ed25519 e verificati interamente offline. Nessun server esterno viene contattato per la validazione della licenza. Le licenze a pagamento sono annuali: se una licenza scade, tutte le funzionalita continuano a funzionare normalmente. L’unico cambiamento visibile e la comparsa del badge “Powered by QuoteNode” sulle superfici rivolte al cliente e di un promemoria di rinnovo nell’interfaccia. Nessuna funzionalita viene disabilitata.