{"id":37249,"date":"2019-10-31T22:16:34","date_gmt":"2019-10-31T19:16:34","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ne-shutite-s-null\/"},"modified":"2019-10-31T22:16:34","modified_gmt":"2019-10-31T19:16:34","slug":"ne-shutite-s-null","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/ne-shutite-s-null","title":{"rendered":"Don't mess with NULL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A worthy Friday story unfolded with American security researcher Joseph Tartaro. He wanted to stand out by ordering not just a custom license plate, but also linking it to his profession. His first thought was to play around with SEGFAULT or something like that. But in the end, he settled on the plate NULL for his car and VOID for his wife. Sensing something was off? Read on to find out how this innocent prank turned out for him, about another quirky Mr. Null, and the instructive bugs in data type checks in user input.<\/p>\n<p><img decoding=\"async\" alt=\"Don&#039;t mess with NULL\" src=\"\/wp-content\/uploads\/2019\/08\/b1bffbee4c8c58e3201b84a64f0e0808.jpeg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>So, in 2016, our programming prankster received his brand new funny license plates and surely rubbed his hands with glee. He even hoped that this move would save him from getting tickets. Not that he was a frequent offender, but the idea of breaking the system in such a way seemed quite intriguing for a security specialist.<\/p>\n<p>Problems began a year later when he tried to renew the plates online. He was quite puzzled by the website designated for that.<\/p>\n<p><img decoding=\"async\" alt=\"Don&#039;t mess with NULL\" src=\"\/wp-content\/uploads\/2019\/08\/d64e3963650f82a14ff31059708ad846.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe system deemed the number he entered as invalid. The programmers must have messed up somewhere, and the NULL he submitted as a text value was apparently checked incorrectly. A loose type checking error? However, he managed to renew the number for a year using the code in the link, and he somehow let it go after that.<\/p>\n<p>However, as it turned out, these were far from the only problems. The story further reminded one of those old jokes:<\/p>\n<blockquote><p>A soldier in the middle of a field is trying to fix a track that has fallen off a tank. Suddenly, out of nowhere, a fairy appears and asks:<br \/>\n \u2014 What are you doing, soldier?<br \/>\n \u2014 Just trying to fix this.<br \/>\n \u2014 Would you like to do it properly?<br \/>\n \u2014 (wistfully) I would...<br \/>\nThe fairy waved her wand\u2026 and the tank's turret fell off.<\/p><\/blockquote>\n<p>\nIn early 2018, he received a well-deserved fine of $35. He could have contested it, but it was easier to pay since the amount was not significant. Then, the fairy waved her wand\u2026 and suddenly, his mailbox was filled with fines for unpaid parking, stops in prohibited areas, and other similar pleasures. Dozens and dozens of fines ranging from $37, $60, $74, to $80\u2026 From completely different corners of California. For completely different models of cars. Due to yet another flawed type-check, NULL got associated with his personal data in the database. And every time a diligent law enforcement officer forgot to enter the car number into the system when issuing a ticket, the prize went to our hero (it would be worth kicking the frontend developers as well for not having a check for filling in one of the key parameters).<\/p>\n<p>At one point, he received two fines issued in the same location just hours apart for completely different car models. To make matters worse, old fines with unspecified numbers were retrospectively applied to him. Thus, he ended up with fines from 2014, when he didn't even have that number. Ultimately, he had over $12,000 in fines hanging over him.<\/p>\n<p><img decoding=\"async\" alt=\"Don&#039;t mess with NULL\" src=\"\/wp-content\/uploads\/2019\/08\/258d609a90c61510fc47f07cfcaa4192.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nParking fines were handled by a private company, Citation Processing Center. Naturally, Joseph reached out to them and tried to explain the situation. Naturally, the manager on the phone politely brushed him off, asking him to send back the receipts for them to sort it out. But that would mean losing the only solid copy confirming the incorrectness of the fine issuance. Fortunately, he didn't send it. Later, he noticed that in the open fines database available online, the original car model was replaced with his. Another round of conversations with the managers, equally futile.<\/p>\n<p>As a result, he had to reach out directly to the DMV (Department of Motor Vehicles), the state agency responsible for vehicle registration, and with their help, he managed to significantly reduce the amount to $6262. However, this did not resolve the initial problem. New fines continued to arrive. At the time of writing the original article in Wired, there were 2 unpaid fines totaling $140. Most regrettably, the DMV is refusing to renew his registration for another year until the fines are settled. Moreover, it is not very clear where to go and whom to confront to get this issue fixed. The DMV notes that their system correctly recognizes his license plate numbers and acknowledges the absurdity of the situation. However, parking violations are managed by local authorities, which they have no control over. So this story may very well continue. The prank backfired.<\/p>\n<h2>Mr. Null<\/h2>\n<p>\nChristopher Null is even less fortunate. He was unlucky enough to be born with that last name. While Joseph Tartaro has only been suffering from fines for about the past year, Christopher is continuously sinking deeper into a quagmire of troubles alongside the rise of digital technologies.<\/p>\n<p>He is particularly inconvenienced by the widely developed concept of MVP (minimum viable product), which in some cases directly coincides with the idea of \"let's just push it to production\".<\/p>\n<p>Even if we set aside all the school-level jokes about his last name and accusations of trying to draw attention this way (which is a decent method if you are a tech journalist, as Christopher is), strange issues arise when working with certain websites and applications.<\/p>\n<p>According to Christopher, most websites handle the last name Null correctly. Some, however, report that the field cannot be empty or that it is a reserved word. In rare cases, applications simply crash. Interestingly, he has observed that the larger the company behind the application or website, the more problems he encounters with his last name.<\/p>\n<p>What stands out is its data filtering, which discards Null from already saved data. Sometimes it receives emails addressed to Media LLC (while the company name is Null Media LLC), and sometimes in the spam it simply refers to him as 'Mr.'. He even had to develop workarounds. For example, inputting a second name or initial in the same field as the last name or just adding a period at the end. But sometimes the system's stubbornness proves unbeatable.<\/p>\n<p>For instance, Bank of America flatly refused to accept his email null@nullmedia.com. Their system simply rejected null in the user part of the address, so he had to create a pseudonym info@ just for the bank. But banking software was evolving rapidly, and after a few years\u2026 it stopped accepting null even as part of the domain name. The poor guy had to create a plain Gmail account for particularly stubborn cases. This also contained null, but not at the beginning of the username.<\/p>\n<p>Have you encountered any oddities when processing system values? Share your experiences in the comments.<\/p>\n<p>Thank you for staying with us. Do you enjoy our articles? Would you like to see more interesting materials? Support us by placing an order or recommending us to your friends. <b>30% discount for Habr users on a unique entry-level server designed by us for you:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">The whole truth about VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps starting at $20, or how to properly divide a server?<\/a><\/noindex> (options available with RAID1 and RAID10, up to 24 cores and up to 40GB DDR4).<\/p>\n<p><b>Dell R730xd for half the price?<\/b> Only with us <b><noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/serversnl\">2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100TB starting at $199<\/a><\/noindex> in the Netherlands! <b>Dell R420 \u2014 2x E5-2430 2.2GHz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 from $99!<\/b><\/b> Read about how <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">To build a corporate-class infrastructure using Dell R730xd E5-2650 v4 servers costing 9000 euros for peanuts?<\/a><\/noindex><br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/463859\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u043e\u0439\u043d\u0430\u044f \u043f\u044f\u0442\u043d\u0438\u0446\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438\u043b\u0430\u0441\u044c \u0441 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0414\u0436\u043e\u0437\u0435\u0444\u043e\u043c \u0422\u0430\u0440\u0442\u0430\u0440\u043e (Joseph Tartaro). \u0417\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0435\u043c\u0443 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, \u0437\u0430\u043a\u0430\u0437\u0430\u0432 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u043d\u0430 \u0430\u0432\u0442\u043e, \u043d\u043e \u0438 \u0441\u0432\u044f\u0437\u0430\u0432 \u0435\u0433\u043e \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0440\u0435\u043c\u0435\u0441\u043b\u043e\u043c. \u041f\u0435\u0440\u0432\u043e\u0439 \u043c\u044b\u0441\u043b\u044c\u044e \u0431\u044b\u043b\u043e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 SEGFAULT \u0438\u043b\u0438 \u0447\u0435\u043c-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u044d\u0442\u043e\u0433\u043e. \u041d\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043e\u043d \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0435 NULL \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0438 VOID \u0434\u043b\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27935,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37249","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0441\u0442\u043e\u0439\u043d\u0430\u044f \u043f\u044f\u0442\u043d\u0438\u0446\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438\u043b\u0430\u0441\u044c \u0441 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0414\u0436\u043e\u0437\u0435\u0444\u043e\u043c \u0422\u0430\u0440\u0442\u0430\u0440\u043e (Joseph Tartaro).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/ne-shutite-s-null\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041d\u0435 \u0448\u0443\u0442\u0438\u0442\u0435 \u0441 NULL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u043e\u0439\u043d\u0430\u044f \u043f\u044f\u0442\u043d\u0438\u0446\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438\u043b\u0430\u0441\u044c \u0441 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0414\u0436\u043e\u0437\u0435\u0444\u043e\u043c \u0422\u0430\u0440\u0442\u0430\u0440\u043e (Joseph Tartaro).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/ne-shutite-s-null\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:16:34+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:16:34+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Don't joke with NULL | ProHoster","description":"A worthy Friday story happened with American security researcher Joseph Tartaro.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/ne-shutite-s-null","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041d\u0435 \u0448\u0443\u0442\u0438\u0442\u0435 \u0441 NULL | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u043e\u0439\u043d\u0430\u044f \u043f\u044f\u0442\u043d\u0438\u0446\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438\u043b\u0430\u0441\u044c \u0441 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0414\u0436\u043e\u0437\u0435\u0444\u043e\u043c \u0422\u0430\u0440\u0442\u0430\u0440\u043e (Joseph Tartaro).","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/ne-shutite-s-null","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:16:34+00:00","article:modified_time":"2019-10-31T19:16:34+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37249","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 16:57:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:25:10","updated":"2026-01-23 16:57:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/37249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=37249"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/37249\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/27935"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=37249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=37249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=37249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}