Legal pubblico
Sicurezza
Confini di sicurezza pubblici per upload, scan, supporto e report DossierCFO.
Sicurezza
DossierCFO tratta documenti finanziari sensibili e mantiene separati upload, scan, revisione, AI e export.
Upload e scan
Upload primari e upload evidenze vengono validati lato server per estensione supportata, MIME, dimensione, checksum SHA-256 dei byte salvati e firme file praticabili. Le evidenze vengono salvate quando il formato file è supportato; rilevanza, completezza, mapping fonte e affidabilità decidono se il contenuto può sbloccare fatti, report o export. Stati pending, scanner_failed, infected, MIME mismatch, unsupported o parser-incompatible non devono sbloccare report o export.
Lo stato scan è aggiornato solo dal percorso server di scan/archivio. L'intake ZIP blocca path traversal, path duplicati, archivi annidati, archivi protetti/corrotti, entry sovradimensionate, contenuti eseguibili non supportati e contenuto sentinella tipo EICAR. Un client autenticato non può impostare direttamente uno scan a clean o creare entry ZIP virtuali pulite tramite API pubblica.
La finalizzazione degli export è interna al server. Un client autenticato non può allegare storage arbitrario o convertire un export bloccato/non PDF in ready tramite API pubblica.
Accesso e ownership
Le aree protette richiedono sessione verificata. Documenti, report, export e link evidenza devono restare vincolati all'owner o al token previsto.
L'isolamento workspace usa l'utente autenticato come confine tenant operativo. Progetti, dossier, analisi, documenti, evidenze, export report, thread AI, tool call, URL storage e cancellazioni sono letti o modificati solo dopo verifica dell'owner del record; i tentativi cross-user restituiscono errori non enumeranti. Gli eventi audit derivano tenant, analisi e attore dal record posseduto o dal link evidenza valido, non da un tenant globale condiviso.
Segreti runtime
I segreti runtime sono gestiti tramite bootstrap Bitwarden Secrets Manager dedicato FocusDigital. CI e workflow operativi caricano il progetto Bitwarden selezionato per il runtime richiesto e validano le chiavi richieste prima dell'uso. Non servono segreti provider diretti in GitHub, oltre al token machine-account Bitwarden, agli identificativi progetto e all'URL server Bitwarden quando necessario.
Il test locale di Google OAuth usa il profilo Portless dedicato su https://local.dossiercfo.focus-digital.it per l'app e https://auth.local.dossiercfo.focus-digital.it/api/auth/callback/google per la callback Better Auth. Lo sviluppo standard su localhost resta separato da quel profilo OAuth.
Incidenti
Incidenti su auth/email, storage, OCR, AI provider, upload malevolo, possibile leak PII o cancellazione dati devono seguire runbook con owner, severità, passi di contenimento e comunicazione cliente.
Segnalare sospetti incident a info@focus-digital.it con soggetto Security incident. L'operatore deve valutare contenimento, avviso cliente, escalation provider o notifica all'autorità prima di ripristinare il trattamento ordinario.