Il disguido, che lui stesso racconta qui, è avvenuto perché la sua statura era stata registrata nei sistemi informatici della sanità britannica immettendo piedi e pollici in un campo fatto per contenere un valore espresso in centimetri. Thorp è alto 6 piedi e 2 pollici (187 cm), e così qualcuno ha immesso 6,2 (anzi, 6.2 secondo la notazione anglosassone).
Risultato: il sistema ha accettato senza batter ciglio che Thorp avesse una statura di 6,2 centimetri ed è poi andato a calcolare il suo indice di massa corporea prendendo il suo peso e la sua statura e ha quindi deciso che il soggetto era incredibilmente obeso.
Il sistema ha poi preso questo dato di obesità impossibile e lo ha usato come criterio per l’emissione dell’invito a vaccinarsi.
Thorp l’ha presa bene, ma se il sistema può commettere errori di questo genere potrebbe anche commetterli nell’altro senso e negare una vaccinazione a chi ne ha bisogno.
Questo genere di problema tipicamente informatico nasce dal fatto che chi
programma i computer non fa controlli di buon senso sui dati immessi. Un
programma fatto bene non dovrebbe nemmeno accettare una statura di 6,2
centimetri.
Questo tipo di controllo va sotto vari nomi: input validation o input sanitization sono fra i più frequenti. La validation consiste nel controllare che in un campo venga immesso un dato pertinente (per esempio soltanto cifre in un campo destinato ad accogliere un numero) e sensato (una statura deve avere limiti massimi e minimi, per esempio).
La sanitization, invece, consiste nel verificare che i dati immessi non contengano caratteri che possono causare problemi nell’elaborazione successiva (per esempio qualcosa che possa essere interpretato come comando anziché come dato).
Può sembrare banale, ma il mancato controllo dei dati immessi è la tecnica
tipica di intrusione nei siti: si chiama SQL injection. Cito in
proposito l’ormai storica vignetta di
xkcd:
Nessun commento:
Posta un commento