Problema import movimenti bancari (Unicredit non fa alcuna sanificazione nei suoi export in CSV) - CSV amount poisoning
Se una persona fa una donazione ad Italian Linux Society (che ha banca Unicredit) di una cifra anche irrisoria (1€) tramite bonifico, e mettendo però oggetto del bonifico qualcosa come LOL; 999999 quello che capita è che la banca Unicredit non sembra seguire alcuna buona pratica suggerita dall'RFC 4180 sulla gestione dei CSV, non fa quindi alcun escape dei dati delle colonne, e quindi il valore 999999 diventa una colonna a parte, corrispondente a quella dell'importo.
Questo è un esempio di donazione malevola di 5€ con oggetto Donazione;12345678.90;999, esportata da Unicredit, e importata in ILS Manager, finisce per diventare da 500€ corrispondente a 20 anni di valide quote associative (un ringraziamento a @PalinuroSec per la donazione e l'esperimento asd - non arrestate Palinuro - era tutto concordato - https://t.me/ItalianLinuxSociety/2/4735):
Considerazioni
Questo non è comunque un grave problema di sicurezza siccome alla fine di ogni anno siamo comunque costretti a verificare i bilanci a mano, riconducendo i movimenti interni di ILS Manager con quelli esterni dalle banche e quindi ci accorgiamo di questa cosa e risolviamo.
Altre cose
Tutto è iniziato importando un file del genere come movimento bancario:
Situazione al 11.03.2024 ore 09:29:04 del Conto Corrente IT 74 G 02008 12609 000100129899 - ILS ITALIAN LINUX SOCIETY
Data;Valuta;Descrizione;Euro;Caus.
27/02/2024;test test test; spese domi TRN 1101240580166678;-136.72;208
Risulta con importo zero in ILS Manager in produzione.
Codice
File da poter migliorare:
Potenziale regex da poter adottare per fare il parsing di questo CSV rotto:
