Nu glumiți cu NULL

O poveste demnă de o vineri s-a întâmplat cu americanul specialist în securitate Joseph Tartaro. I-a venit ideea de a se remarca, solicitând nu doar un număr de înmatriculare personalizat, ci și legându-l de meseria sa. Prima idee a fost să se joace cu SEGFAULT sau ceva de genul acesta. În cele din urmă, s-a hotărât asupra numărului NULL pentru mașina sa și VOID pentru soția sa. Ați simțit că ceva nu e în regulă? Despre ce s-a întâmplat cu această păcăleală inofensivă, despre un alt misterios domn Null și despre lecțiile învățate din erorile legate de tipurile de date în inputurile utilizatorilor, citiți mai departe.

Nu glumiți cu NULL

Așadar, în 2016, glumețul din programare a primit noile sale numere amuzante de înmatriculare și cu siguranță își freca palmele de bucurie. Chiar avea speranța că acest tip de abordare îl va scuti de amenzile de circulație. Nu că ar fi încălcat regulile prea mult, dar ideea de a sparge sistemul în acest mod părea interesantă pentru un specialist în securitate.

Problemele au apărut un an mai târziu, când a încercat să-și reînnoiască numerele online. Și a lăsat complet perplex site-ul destinat acestui lucru.

Nu glumiți cu NULL

Sistemul a considerat că numărul introdus de el era incorect. Programatorii au greșit undeva, iar NULL, introdus ca valoare textuală, părea că a fost verificat greșit. O eroare de verificare slabă a tipurilor? Totuși, a reușit să își reînnoiască numărul pe un an prin codul din link și cumva a ignorat problema ulterior.

Cu toate acestea, a fost departe de a fi totul. Apoi, povestea a început să semene cu o veche glumă:

Un soldat în mijlocul câmpului încearcă cumva să repare un șenilă care s-a desprins de tanc. Dintr-o dată, apare din neant o zână și întreabă:
— Cu ce te ocupi, soldat?
— Păi, mă### fie.
— Vrei să te ocupi cu adevărat?
— (visător) Vreau…
Zâna a fluturat bagheta… Și tancul a rămas fără turret.

Așadar, la începutul anului 2018, a primit o amendă bine meritată în valoare de 35 $. Ar fi putut să o conteste, dar era mai simplu să plătească, suma fiind mică. Și atunci, zâna a fluturat bagheta… Și în cutia poștală au început să vină amenzi pentru parcări neplătite, opriri în locuri nepermise și alte astfel de bucurii. Zeci și zeci de amenzi în sume de 37 $, 60 $, 74 $, 80… din colțuri complet diferite ale Californiei. Pentru modele complet diferite de mașini. Din cauza unei verificări eronate a tipizării, valoarea NULL s-a asociat în baza de date cu datele lui personale. Și de fiecare dată când un curajos gardian al ordinii uita să introducă numărul mașinii în sistem la emiterea amenzii, premiul mergea eroului nostru (ar trebui să fie certați și dezvoltatorii frontend pentru lipsa verificării completării unui parametru esențial).

La un moment dat, a primit două amenzi emise în același loc, cu o diferență de câteva ore, pentru modele complet diferite de mașini. Pentru o și mai mare nefericire, i-au fost aplicate retroactiv amenzi vechi fără număr specificat. Astfel, a primit chiar amenzi din 2014, când nu avea nici măcar acest număr. În cele din urmă, a rămas cu amenzi în valoare de peste 12.000 $.

Nu glumiți cu NULL

Amenzile pentru parcări erau gestionate de o companie privată, Citation Processing Center. Desigur, Joseph a luat legătura cu ei și a încercat să explice situația. Desigur, managerul de la telefon a evitat cu delicatețe problema, cerând să le trimită chitanțele, pentru a se ocupa ei de situație. Dar aceasta ar fi însemnat pierderea singurei copii tangibile care ar fi confirmat necorectitudinea emiterii amenzii. Și bine că nu a trimis-o. Mai târziu, a observat că în baza de date deschisă a amenzilor, disponibilă online, modelul inițial al mașinii a fost înlocuit cu al său. O rundă și mai multe conversații cu managerii, la fel de inutile.

În cele din urmă, a fost nevoit să se adreseze direct DMV (Department of Motor Vehicles, agenția guvernamentală care se ocupă cu înmatricularea vehiculelor) și cu ajutorul lor a reușit să reducă suma la $6262 într-un timp relativ scurt, însă aceasta nu a rezolvat problema inițială. Amenzile noi continuau să vină. La data redactării articolului original în Wired, două amenzi în valoare totală de $140 rămâneau neplătite. Ceea ce este cel mai trist, DMV îi refuză prelungirea numerelor pentru încă un an, până când amenzile nu sunt achitate. Mai mult, nu este foarte clar unde să meargă și cui să ceară ajutorul pentru a remedia această problemă. DMV menționează că sistemul lor recunoaște corect numerele sale și conștientizează absurditatea situației. Totuși, problemele legate de parcări sunt gestionate de autoritățile locale, asupra cărora ei nu pot influența. Așadar, povestea ar putea continua.

Mr. Null

Și mai puțin norocos este Christopher Null. Nefericirea de a se naște cu un astfel de nume este evidentă. Dacă Joseph Tartaro se confruntă doar cu amenzi, și doar în ultimul an, Christopher se afundă permanent în groapa suferinței odată cu dezvoltarea tehnologiilor digitale.

Un disconfort deosebit îi este cauzat de conceptul larg răspândit de MVP (minimum viable product, produs minim viabil), care în unele cazuri coincide direct cu conceptul „hai, hai, și în producție”.

Dacă lăsăm la o parte toate glumele de nivel școlărești legate de numele său, precum și acuzațiile că ar încerca astfel să atragă atenția (ceea ce este o metodă destul de bună dacă ești un jurnalist tehnic, așa cum este Christopher), apar ciudățenii atunci când lucrează cu anumite site-uri și aplicații.

Conform afirmațiilor lui Christopher, majoritatea site-urilor gestionează corect numele Null. Totuși, unele raportează că câmpul nu poate fi gol sau că acesta este un cuvânt rezervat. În cazuri rare, aplicațiile pur și simplu se blochează. Interesant este că, potrivit observațiilor sale, cu cât compania care stă în spatele aplicației sau site-ului este mai mare, cu atât mai multe probleme va întâmpina cu numele său.

Îi face plăcere filtrarea datelor, care elimină Null din datele deja salvate. Așadar, uneori primește e-mailuri către Media LLC (în timp ce numele companiei este Null Media LLC), iar uneori, în spam, îl abordează pur și simplu ca „Mr.”. A trebuit chiar să își dezvolte manevre de ocolire. De exemplu, să introducă un al doilea nume sau inițială într-un singur câmp cu numele de familie sau pur și simplu să adauge un punct la final. Dar uneori obținerea unui rezultat este imposibilă.

Astfel, Bank of America a refuzat cu desăvârșire să accepte e-mailul său null@nullmedia.com. Sistemul lor pur și simplu refuza să accepte null în partea de utilizator a adresei, astfel că a fost nevoit să își creeze un pseudonim info@ special pentru bancă. Totuși, software-ul bancar s-a dezvoltat rapid, iar după câțiva ani… a încetat chiar să accepte null ca parte din numele de domeniu. Bietul om a fost nevoit să își facă un banal cont pe Gmail pentru situațiile dificile. De asemenea, conține null, dar nu la începutul numelui de utilizator.

V-ați confruntat cu vreo situație amuzantă în procesarea valorilor de sistem? Povestiți în comentarii.

Vă mulțumim că rămâneți cu noi. Vă plac articolele noastre? Doriți să vedeți mai multe materiale interesante? Susțineți-ne făcând o comandă sau recomandându-ne prietenilor. 30% reducere pentru utilizatorii Habr pentru un server entry-level unic, creat special pentru tine: Adevărul despre VPS (KVM) E5-2650 v4 (6 nuclee) 10GB DDR4 240GB SSD 1Gbps de la 20$ sau cum să împărțim corect un server? (sunt disponibile opțiuni cu RAID1 și RAID10, până la 24 nuclee și până la 40GB DDR4).

Dell R730xd la jumătate de preț? Numai la noi 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB de la 199 $ în Olanda! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — de la 99 $! Citiți despre Cum să construiți o infrastructură de clasă enterprise folosind servere Dell R730xd E5-2650 v4 la prețuri foarte mici de 9000 €?

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster