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

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

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

С глобите за паркиране се занимаваше частна компания Citation Processing Center. Разбира се, Джоузеф се свърза с тях и се опита да обясни ситуацията. Разбира се, мениджърът на телефона учтиво го игнорира, помоли да им изпрати квитанциите, за да могат да се разровят. Но това щеше да означава загуба на единствената твърда копия, която потвърдяваше некоректността на глобата. И слава на Бога, че не изпрати. По-късно забеляза, че в публичната база данни на глобите, достъпна онлайн, първоначалният модел на автомобила е заменен с неговия. Още един кръг разговори с мениджърите, толкова също безполезен.
В крайна сметка му се наложи да се обърне директно към DMV (Department of Motor Vehicles, държавен орган, отговарящ за регистрацията на моторни превозни средства), и с тяхна помощ успя сравнително бързо да намали сумата до 6262 $, но това не реши първоначалния проблем. Нови глоби продължаваха да постъпват. Към датата на написване на оригиналната статия в Wired, две глоби на обща стойност 140 $ оставаха неплатени. Най-тъжното е, че DMV му отказва удължаване на регистрационните номера за поредна година, докато глобите не бъдат платени. Освен това не е много ясно къде да отиде и на кого да поиска обяснение, за да бъде решен този проблем. DMV отбелязва, че тяхната система правилно разпознава номерата му и осъзнава абсурда на ситуацията. Въпреки това, въпросите, свързани с паркирането, се решават от местните власти, на които те нямат как да повлияят. Така че историята все още може да има своето продължение. Шегата не успя.
Г-н Нул
Още по-нещастен е Кристофър Нул (Christopher Null). Не му е повезло да се роди с такова име. Докато Джоузеф Тартаро страда само с глоби и само последната година, Кристофър постоянно все по-дълбоко се задълбочава в океана на страданията, паралелно с развитието на цифровите технологии.
Особено му създава неудобства широко приложимата концепция MVP (minimum viable product, минимален жизнеспособен продукт), която в някои случаи съвпада с концепцията "херак-херак, и в продукцията".
Да не споменаваме вицовете от училищно ниво относно фамилията му, както и обвиненията, че по този начин привлича вниманието (което е добър начин, ако си технически журналист, какъвто е Кристофър), странности възникват при работа с някои сайтове и приложения.
Според Кристофър, повечето сайтове обработват фамилията Null правилно. Някои обаче съобщават, че полето не може да бъде празно или че това е запазена дума. В редки случаи приложенията просто се сриват. Интересно е, че по негови наблюдения, колкото по-голяма е компанията зад приложението или сайта, толкова повече проблеми възникват с фамилията му.
Отделно радва его филтрацията на данни, която отхвърля Null от вече запазените данни. Така понякога получава писма на адрес Media LLC (докато името на компанията е Null Media LLC), а понякога в спам просто се обръщат към него като „г-н“. Дори му се налага да изработи обходни маневри. Например, да поставя второто име или инициала в едно поле с фамилията или просто да добавя точка в края. Но понякога упоритостта на системата се оказва непобедима.
Bank of America напълно отказваше да приема неговия e-mail 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
