Non scherzare con NULL

Una storia degna di venerdì è accaduta all'esploratore della sicurezza americano Joseph Tartaro. Voleva distinguersi ordinando non solo un numero di targa personalizzato, ma anche legandolo al suo mestiere. La prima idea è stata di divertirsi con SEGFAULT o qualcosa del genere. Ma alla fine, ha optato per il numero NULL per la sua auto e VOID per quella di sua moglie. Hai sentito puzza di bruciato? Scopri cosa è successo a questa innocente bravata, di un altro curioso signor Null e degli insegnamenti sui bug nel controllo dei tipi di dati nell'input degli utenti, leggi sotto.

Non scherzare con NULL

Quindi, nel 2016, il nostro burlone della programmazione ha ricevuto le sue nuove targhe divertenti e sicuramente si stava sfregando le mani. Aveva persino la speranza che tale mossa lo liberasse dai verbali. Non che fosse un gran trasgressore, ma l'idea stessa di rompere il sistema in questo modo per uno specialista della sicurezza sembrava piuttosto interessante.

I problemi sono iniziati un anno dopo, quando ha cercato di rinnovare la registrazione dei numeri online. E ha molto sorpreso il sito web destinato a questo.

Non scherzare con NULL

Il sistema ha considerato il numero inserito non valido. Gli programmatori hanno commesso un errore, e il NULL inserito come valore di testo è stato evidentemente controllato in modo errato. È un errore di tipizzazione debole? Tuttavia, è riuscito a prolungare il numero di un anno utilizzando il codice nel link, e in qualche modo ha smesso di preoccuparsene.

Tuttavia, come si è scoperto, non si trattava affatto di problemi. La storia ha ricordato una vecchia barzelletta:

Un soldato nel mezzo del campo cerca di riparare una ruota che si è staccata da un carro armato. Improvvisamente, appare una fata e chiede:
— Cosa stai facendo, soldato?
— Sto cercando di sistemare questa cosa.
— Vuoi farlo realmente?
— (sognante) Vorrei...
La fata ha agito con la sua bacchetta... E la torre del carro armato si è staccata.

Così, all'inizio del 2018, ha ricevuto una multa ben meritata di $35. Avrebbe potuto impugnarla, ma era più semplice pagare, l'importo non era elevato. E lì la fata ha agitato la bacchetta… E nella cassetta della posta sono piovute multe per le soste non pagate, le fermate in luoghi non consentiti e altre simili gioie. Decine e decine di multe per importi di $37, $60, $74, $80… Da angoli completamente diversi della California. Per modelli di auto del tutto vari. A causa di un'altra bizzarra verifica di tipo, il valore NULL è stato associato nel database ai suoi dati personali. E ogni volta che l'eroico agente di polizia dimenticava di inserire il numero dell'auto nel sistema quando emetteva la multa, il premio andava al nostro eroe (qui sarebbe il caso di dare una spinta anche agli sviluppatori del frontend per la mancanza di controllo sul completamento di uno dei parametri chiave).

A un certo punto ha ricevuto due multe emesse nello stesso luogo a poche ore di distanza su modelli di auto completamente diversi. Per aggiungere insoddisfazione, a lui sono state applicate retrospettivamente vecchie multe senza numero specificato. Così, ha ricevuto addirittura multe del 2014, quando non possedeva nemmeno quel numero. Alla fine, si è ritrovato con multe per un importo superiore a $12.000.

Non scherzare con NULL

Le multe per parcheggio erano gestite da una società privata, il Citation Processing Center. Naturalmente, Joseph li ha contattati cercando di spiegare la situazione. Ovviamente, il manager al telefono è stato piuttosto evasivo, chiedendo di inviare indietro le ricevute affinché potessero risolvere il problema. Ma questo avrebbe significato perdere l'unica copia cartacea che confermava l'erroneità della multa. Per fortuna non l'ha inviata. Successivamente ha notato che nel database pubblico delle multe, accessibile online, il modello originale dell'auto era stato sostituito con il suo. Un altro giro di conversazioni con i manager, altrettanto inutile.

Alla fine, ha dovuto contattare direttamente il DMV (Department of Motor Vehicles, l'ente governativo che si occupa della registrazione dei veicoli), e grazie al loro aiuto è riuscito a ridurre abbastanza rapidamente l'importo a $6262, ma questo non ha risolto il problema iniziale. Continuavano ad arrivare nuove multe. Alla data della scrittura dell'articolo originale su Wired, risultavano non pagate 2 multe per un totale di $140. La cosa più triste è che il DMV gli rifiuta il rinnovo della targa per un altro anno, finché le multe non saranno risolte. Inoltre, non è molto chiaro a chi rivolgersi per risolvere questa situazione. Il DMV fa notare che il loro sistema riconosce correttamente la sua targa e capisce l'assurdità della situazione. Tuttavia, le questioni legate al parcheggio sono gestite dalle autorità locali, sulle quali non possono esercitare alcuna influenza. Quindi la storia potrebbe avere ancora un seguito. La furbizia non ha funzionato.

Mr. Null

Povero Christopher Null. Non è fortunato a nascere con un cognome del genere. Se Joseph Tartaro ha sofferto solo di multe nell'ultimo anno, Christopher si sta immergendo sempre di più nel profondo mare della sofferenza parallela all'evoluzione delle tecnologie digitali.

Particolarmente scomoda per lui è la diffusasi del concetto di MVP (minimum viable product, prodotto minimo vitale), che in alcuni casi coincide direttamente con il concetto di 'fai e metti in produzione'.

Anche se si evitano tutte le battute di spirito sulla sua famiglia, così come le accuse di cercare attenzione in tal modo (che è un buon modo, se sei un giornalista tecnico, come Christopher), sorgono stranezze nel lavorare con alcuni siti e applicazioni.

Secondo Christopher, la maggior parte dei siti gestisce correttamente il cognome Null. Alcuni, tuttavia, segnalano che il campo non può essere vuoto o che si tratta di una parola riservata. In rari casi, le applicazioni smettono semplicemente di funzionare. È interessante notare che, secondo le sue osservazioni, più grande è l'azienda dietro l'applicazione o il sito, maggiori saranno i problemi con il suo cognome.

Particolarmente soddisfacente è la sua filtrazione dei dati, che esclude Null dai dati già salvati. Così, a volte riceve lettere indirizzate a Media LLC (mentre il nome dell'azienda è Null Media LLC), e a volte, in alcuni spam, lo chiamano semplicemente «Mr.». Ha persino dovuto elaborare manovre alternative. Ad esempio, inserire un secondo nome o un'iniziale nello stesso campo del cognome o semplicemente aggiungere un punto alla fine. Ma a volte la testardaggine del sistema si rivela inarrestabile.

Così, Bank of America si è completamente rifiutato di accettare la sua e-mail null@nullmedia.com. Il loro sistema si rifiutava semplicemente di accettare null nella porzione dell'utente dell'indirizzo, tanto che è stato necessario creare un alias info@ appositamente per la banca. Ma il software bancario si è evoluto rapidamente e, dopo qualche anno... ha smesso di accettare null anche come parte del nome di dominio. Il poveretto ha dovuto creare un banale account su Gmail per casi particolari. Anche questo conteneva null, ma non all'inizio del nome utente.

Hai mai affrontato situazioni curiose nell'elaborazione di valori di sistema? Racconta nei commenti.

Grazie per rimanere con noi. Ti piacciono i nostri articoli? Vuoi vedere più contenuti interessanti? Supportaci effettuando un ordine o raccomandando ai tuoi amici. Sconto del 30% per gli utenti di Habr su un'alternativa unica ai server entry-level, progettata da noi per te: Tutta la verità su VPS (KVM) E5-2650 v4 (6 Core) 10GB DDR4 240GB SSD 1Gbps a partire da $20: come suddividere correttamente un server? (disponibili opzioni con RAID1 e RAID10, fino a 24 core e fino a 40GB DDR4).

Dell R730xd a metà prezzo? Solo da noi 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB a partire da $199 nei Paesi Bassi! Dell R420 — 2x E5-2430 2.2GHz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — a partire da $99! Scopri di più su Come costruire un'infrastruttura di classe enterprise con server Dell R730xd E5-2650 v4 dal costo di 9000 euro a prezzi stracciati?

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster