Progettazione tecnica
Metodologia e limiti di sicurezza
L'implementazione privilegia la provenienza dei dati, la mutazione minima, l'incertezza esplicita e la verifica ripetibile rispetto alla conversione solo per comodità.
1. Identificazione dell'ingresso
Il parser non si basa esclusivamente sul nome del file. Controlla ZIP, OLE, JSON, XML e le firme di testo, quindi ispeziona i membri del pacchetto ove applicabile. La normalizzazione del percorso rifiuta percorsi assoluti, barre rovesciate, componenti trasversali, nomi normalizzati duplicati, crittografia, compressione non supportata, archivi multi-disco, ZIP64, conteggi di voci eccessivi, dimensioni espanse eccessive e rapporti di compressione sospetti.
2. Lettura ridondante
Testo delimitato
Una macchina a stati orientata ai byte registra l'intervallo di valori grezzi di ciascun campo rispettando i delimitatori tra virgolette, le virgolette con escape e le terminazioni di riga incorporate. Una macchina a stati con stringa decodificata separata analizza lo stesso input. Le loro matrici vengono confrontate prima che sia consentito l'output con conservazione dei byte.
OOXML
Il lettore di pacchetti risolve le relazioni tra cartelle di lavoro e fogli di lavoro, stringhe condivise, stili, sistemi di date e inventari di contenuti. Ogni foglio di lavoro selezionato viene analizzato una volta tramite le API DOM XML del browser e nuovamente tramite uno scanner di celle XML non elaborate. Valori, testo della formula e tipi di archiviazione vengono riconciliati.
3. Corrispondenza gene-simbolo
I record di riferimento sono indicizzati in base al simbolo approvato, ai simboli precedenti, agli alias e agli identificatori stabili. La corrispondenza è classificata anziché appiattita in un'unica sostituzione:
- corrispondenza esatta approvata;
- simbolo omologato con differenza di maiuscola;
- corrispondenza univoca o ambigua del simbolo precedente;
- corrispondenza di alias univoca o ambigua;
- corrispondenza della data di recupero univoca o ambigua;
- ingresso senza eguali.
Solo le mappature supportate non ambigue sono idonee per una raccomandazione predefinita. Le mappature degli alias sono disabilitate per impostazione predefinita perché gli alias spesso hanno una semantica più debole rispetto ai simboli precedenti.
4. Classificazione del rischio Excel
Quando possibile, le regole di protezione operano sulla stringa originale anziché su un numero JavaScript. Rilevano zeri iniziali, numeri interi lunghi, modelli di notazione scientifica, forme di mese/data/ora, prefissi di formule, posizionamento problematico di virgole, spazi bianchi di confine, modelli di virgolette, caratteri di controllo e il limite di lunghezza della formula legacy Excel.
5. Percorsi di uscita
| Fonte | Scrittore preferito | Verifica |
|---|---|---|
| UTF-8 CSV/TSV/TXT | Sostituzione dell'intervallo di byte non elaborato per i campi approvati | Accordo del lettore e byte invariati al di fuori degli intervalli di patch |
| XLSX/XLSM | Sostituzione cella XML del foglio di lavoro all'interno del pacchetto esistente | Riapri l'output, conferma le celle modificate, confronta ogni parte del pacchetto non compresso non modificato e confronta i macro byte |
| JSON/ODS o testo non conservabile in byte | Nuovo XLSX minimo che utilizza testo esplicito e celle numeriche conservatrici | Rilettura del pacchetto e manifest delle modifiche; etichettato come conversione piuttosto che come conservazione della fonte |
| Solo scansione | Nessuna uscita dati | Pacchetto di controllo con inventario, risultati, avvisi e metadati di riconciliazione |
6. Casi bloccati o vincolati
- I file ZIP/OOXML crittografati sono bloccati.
- Le cartelle di lavoro OOXML firmate possono essere controllate ma non modificate.
- Le celle della formula non vengono sostituite automaticamente.
- I file XLS OLE legacy richiedono la conversione in un'applicazione per fogli di calcolo attendibile prima dell'elaborazione.
- Le codifiche XML non supportate e le relazioni non valide non vengono chiuse.
- Solo il foglio di lavoro selezionato viene esportato per i formati basati su matrice in questa versione statica iniziale.
- Il riferimento predefinito HGNC è volutamente compatto; la migrazione ampia dei simboli dovrebbe utilizzare un file HGNC completo caricato localmente.
7. Artefatti di riproducibilità
L'audit ZIP include un manifest JSON leggibile dalla macchina, serie di modifiche CSV e JSON, avvisi e l'output primario quando ne esiste uno. Il manifest registra l'hash di input, l'hash di output, la versione dell'applicazione, il flusso di lavoro, la versione di riferimento, i nomi dei lettori, lo stato di riconciliazione, i conteggi delle modifiche, il conteggio delle ambiguità non risolte e il risultato della verifica.
