Събота се оказа доста интересна за американския изследовател в сферата на сигурността Джоузеф Тартаро (Joseph Tartaro). Той пожела да се отличи, поръчвайки не просто индивидуален номер за автомобила, а свързвайки го с професията си. Първата му мисъл беше да играе с SEGFAULT или нещо подобно. Но в крайна сметка той избра номера NULL за колата си и VOID за съпругата си. Струва ли ви се странно? За това как невинен номер се обърна срещу него, за още един куриозен мистър Null и за поучителните бъгове при проверка на типове данни в потребителския вход, четете нататък.

И така, през 2016 година нашият шегаджия в програмирането получи новите си забавни номера на автомобила и вероятно с удоволствие потриваше ръце. Дори имаше надежда, че този ход ще го освободи от глоби. Не че много нарушаваше, но самата идея да счупи системата по този начин изглеждаше доста интересна за специалист по сигурност.
Проблемите започнаха година по-късно, когато той се опита да поднови номера онлайн. И много го озадачи сайтовете, предназначени за това.

Системата сметна, че въведеният от него номер е некоректен. Програмистите някъде бяха сбъркали, и въведеният NULL като текстова стойност явно се проверяваше неправилно. Грешка в нестрогата типизация? Все пак, успя да поднови номера за още една година по кода в линка, и след това в крайна сметка той не му обръщаше внимание.
Въпреки това, както се оказа, това не бяха проблемите. Историята започна да напомня стари вицове:
Солдат в средата на полето се опитва да поправи откачената гъсеница на танка. Изведнъж, от никъде, се появява фея и пита:
— Какво правиш, служиви?
— Ето, чудя се.
— А искаш ли наистина?
— (мечтателно) Искам...
Феята махна с пръчицата... И на танка се откъсна кула.
През 2018 година той получи напълно заслужена глоба в размер на $35. Можеше да я обжалва, но беше по-лесно да плати, сумата не е голяма. И тук феята размаха палочка... И в пощенската кутия започнаха да валят глоби за неплатени паркинги, спиране на неправилни места и други подобни неприятности. Дузини и дузини глоби на суми $37, $60, $74, $80... От напълно различни ъгли на Калифорния. По напълно различни модели коли. Поради поредната криволичеща проверка, стойността NULL беше свързана в базата с неговите лични данни. И всеки път, когато доблестният полицай забравял да въведе номера на колата в системата при издаването на глобата, наградата отиваше на нашия герой (тук трябваше да се накарат и разработчиците на фронтънда за отсъствието на проверка за попълване на един от ключовите параметри).
В някакъв момент той получи две глоби, издадени на едно и също място с разлика от няколко часа за напълно различни модели коли. За пълно щастие, ретроспективно му бяха приложени стари глоби без посочен номер. Така, той дори получи глоби за 2014 година, когато дори не притежаваше този номер. В крайна сметка, върху него тежаха глоби на стойност над $12000.

За глобите за паркинг се занимаваше частна компания Citation Processing Center. Естествено, Джоузеф се свърза с тях и се опита да обясни ситуацията. Естествено, мениджърът на телефона любезно се оттегли, помолвайки да им се изпратят обратно квитанциите, за да се разследва ситуацията. Но това би означавало загуба на единствената твърда копия, потвърждаваща некоректността на издаването на глобата. И е добре, че не изпрати. По-късно той забеляза, че в откритата база с глоби, достъпна онлайн, първоначалният модел на колата е бил заменен с неговия. Още един кръг разговори с мениджърите, толкова безполезен.
В крайна сметка той трябваше да се обърне директно към DMV (Department of Motor Vehicles, държавната агенция, отговаряща за регистрацията на превозни средства) и с тяхна помощ успя доста бързо да намали сумата до $6262, но това не реши първоначалния проблем. Нови глоби продължаваха да постъпват. На датата, на която е написана оригиналната статия в Wired, две неплатени глоби на обща стойност $140 оставаха неиздължени. Най-забележителното е, че DMV му отказва удължаването на регистрацията за следващата година, докато глобите не бъдат разрешени. Освен това, не е много ясно къде да се обърне, за да се реши този проблем. DMV отбелязва, че тяхната система правилно разпознава номерата му и осъзнава абсурдността на ситуацията. Въпреки това, въпросите за паркирането са в ръцете на местните власти, на които те не могат да повлияят. Така че историята все още може да има своето продължение. Шегата се провали.
Г-н Null
Още по-нещастен е Кристофър Нал (Christopher Null). Не му е било на късмет да се роди с такава фамилия. Докато Джозеф Тартаро страда само от глоби и само през последната година, Кристофър постоянно потъва в дълбините на страданията, паралелно с развитието на цифровите технологии.
Особено му причинява неудобства широко разпространената концепция MVP (minimum viable product, минимално жизнеспособен продукт), която в някои случаи изцяло съвпада с концепцията „хоп-хоп и в продукция“.
Ако дори оставим настрана всички шеги на ниво гимназия относно фамилията му, както и обвиненията в опити да привлече внимание по този начин (което е добро средство, ако си технически журналист, какъвто е Кристофър), странности възникват при работа с някои уебсайтове и приложения.
Според Кристофър, повечето уебсайтове обработват фамилията Null коректно. Някои обаче съобщават, че полето не може да бъде празно или че това е резервирана дума. В редки случаи приложенията просто спират да работят. Интересното е, че, според наблюденията му, колкото по-голяма компания стои зад приложението или сайта, толкова повече проблеми ще има с фамилията му.
Отделната му филтрация на данни, която отхвърля Null от вече запазените данни, е впечатляваща. Понякога получава имейли на адрес Media LLC (когато името на компанията е Null Media LLC), а понякога в спама го наричат просто "Г-н". Дори му се наложи да си измисли обходни маневри. Например, да поставя второто си име или инициал в едно поле с фамилията си, или просто да добавя точка в края. Но понякога упоритостта на системата се оказва непобедима.
Например, Bank of America категорично отказваше да приема неговия имейл null@nullmedia.com. Тяхната система просто отказваше да приеме null в потребителската част на адреса, дори се наложи да направи псевдоним info@ специално за банката. Но банковият софтуер активно се развиваше и след няколко години... спря да приема null дори като част от домейна. Беднякът трябваше да създаде безсмислен акаунт в Gmail за особено упоритите. Той също съдържа null, но не в началото на потребителското име.
Срещали ли сте някакви куриози при обработката на системни стойности? Споделете в коментарите.
Благодарим, че останахте с нас. Харесвате ли нашите статии? Искате ли да виждате повече интересни материали? Подкрепете ни, като направите поръчка или ни препоръчате на познати, 30% отстъпка за потребителите на Хабра за уникален аналог на entry-level сървъри, създаден от нас за вас: (налични опции с RAID1 и RAID10, до 24 ядра и до 40GB DDR4).
Dell R730xd два пъти по-евтин? Само при нас в Нидерландия! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — от $99! Четете за това
Източник: habr.com
