Come succede, senza gergo
Immaginate un portale dove ogni cliente scarica le proprie fatture. Il link per aprire una fattura contiene un numero: la fattura 580, la 581, e così via. Un cliente curioso — o disonesto — nota il numero e prova a cambiarlo: al posto della sua 580 scrive 581. Se l'applicazione gliela mostra, ha appena visto la fattura di un altro cliente, con nome, importi e magari indirizzo. Non ha usato strumenti, non ha «bucato» nulla: ha cambiato un numero. Il difetto non è che il numero sia visibile, è che l'applicazione non ha controllato di chi fosse la fattura prima di consegnarla.
Non è solo un problema tecnico: è privacy
Se i dati che si possono vedere sono dati personali — nomi, indirizzi, importi, documenti — questo difetto non è soltanto un errore di programmazione: è una violazione di dati personali ai sensi del GDPR. E se qualcuno lo sfrutta, o anche solo se ci si accorge che era sfruttabile, possono scattare obblighi precisi: valutare il rischio, e in molti casi notificare la violazione al Garante entro 72 ore. Il difetto tecnico e l'obbligo legale sono la stessa cosa vista da due lati.
Le finte soluzioni, e quella vera
| Rimedio proposto | Funziona? |
|---|---|
| Nascondere il link nel menù | No: l'indirizzo digitato a mano funziona lo stesso |
| Usare un numero lungo e casuale al posto di 580 | Solo in parte: riduce la probabilità di indovinarlo, ma se trapela la porta è ancora aperta |
| Aprire i documenti in una nuova finestra | No: non cambia nulla, è solo estetica |
| Verificare sul server che il documento sia di chi lo chiede | Sì: è l'unica correzione reale |
La regola: la sicurezza non può stare nel nascondere l'indirizzo, perché l'indirizzo è nelle mani dell'utente. Deve stare nel controllo che fa il server, che l'utente non può aggirare.
La correzione giusta è un controllo di autorizzazione lato server: a ogni richiesta di un documento, prima di consegnarlo, l'applicazione verifica che appartenga all'utente collegato. È un controllo che va messo in ogni punto in cui si accede a un dato, uno per uno — ed è proprio perché va ripetuto ovunque che a volte se ne dimentica qualcuno.