• futatorius@lemm.ee
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    2 days ago

    There is an infosec guy in California who had NULL as his car license plate. If a license-plate reader detects a ticketable event but the license plate is unreadable, guess how the system handles those events?

    Infosec guy was not a happy bunny.

  • Shardikprime@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 days ago

    Ah yes, little Nell=%00\u0000’\0’“”‘0’0x000x30’';

    Nellie Null we call her.

    She and her cousin Bobby Tables love to scamper around, but they are good kids. They would never break anything intentionally

    • Kogasa@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 days ago

      Code is easy in a vacuum. 50 moving parts all with their own quirks and insufficient testing is how you get stuff like this to happen.

    • kava@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      3 days ago

      How do devs make this mistake

      it can happen many different ways if you’re not explicitly watching out for these types of things

      example let’s say you have a csv file with a bunch of names

      id, last_name
      1, schaffer
      2, thornton
      3, NULL
      4, smith
      5, "NULL"
      

      if you use the following to import into postgres

      COPY user_data (id, last_name)
      FROM '/path/to/data.csv'
      WITH (FORMAT csv, HEADER true);
      

      number 5 will be imported as a string “NULL” but number 3 will be imported as a NULL value. of course, this is why you sanitize the data (GIGO) but I can imagine this happening countless times at companies all over the country

      there are easy fixes if you’re paying attention

      COPY user_data (id, last_name)
      FROM '/path/to/data.csv'
      WITH (FORMAT csv, HEADER true, NULL '');
      

      sets the empty string to NULL value.


      example with js

      fetch('/api/user/1')
        .then(response => response.json())
        .then(data => {
          if (data.lastName == "null") {
            console.log("No last name found");
          } else {
            console.log("Last name is:", data.lastName);
          }
        });
      

      if data is

      data = {
        id: 5,
        lastName: "null"
      };
      

      then the if statement will trigger- as if there was no last name. that’s why you gotta know the language you’re using and the potential pitfalls

      now you may ask – why not just do

      if (data.lastName === null)
      

      instead? But what if the system you’re working on uses JSON.parse(data) and that auto-converts everything to a string? it’s a very natural move to check for the string "null"

      obviously if you’re paying attention and understand the pitfalls of certain languages (like javascript’s type coercion and the particularities of JSON.parse()) it becomes easy but it’s something that is honestly very easy to overlook

    • blackn1ght@feddit.uk
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      4 days ago

      It’s baffling to me. Maybe I’m just used to using “modern” frameworks, but the only way this could be an issue is if you literally check if the string value equals “null” and then replace it with a null value.

      lastName = lastName.ToUpper() == "NULL" ? null : lastName;

      Either that or the database has some bug where it’s converting a string value of “null” into a null.

      • Slaxis@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 days ago

        That is something I’ve had to do on rare occasions because people set up and store info in stupid ways…

  • ramble81@lemm.ee
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 days ago

    Knew a guy who had the license plate ‘NULL’ and he was telling me how he never got a toll bill or red light ticket.

    • fahfahfahfah@lemmy.billiam.net
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 days ago

      The article talks about a guy with a “NULL” license plate who gets tons of tickets for things he didn’t do so probably not the best plan

      • PM_Your_Nudes_Please@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 days ago

        Yep. For the curious, any time a license plate photo couldn’t be fully read by the automated system, it was marked as “NULL” and he was flagged as the driver. So every single red light camera and speeding camera in the area was sending him to court every day.

        • CheeseNoodle@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 days ago

          It got worse than this, the ticketing company really wanted to get the money from him so when he got hold of a copy of the records and pointed out that one ticket was for a completely different car they modified the records on their end to change the make of car so it would match his. iirc he only got out of it because he had paper copies.

          • DemonVisual@lemm.ee
            link
            fedilink
            English
            arrow-up
            1
            ·
            4 days ago

            Isn’t that falsifying legal documents? In many countries that would land you in jail? Am I wrong, did the people really run that risk?

          • Takios@discuss.tchncs.de
            link
            fedilink
            English
            arrow-up
            1
            ·
            4 days ago

            Don’t they have to prove it with a photograph? In GermanyI’d laugh in theirface withput a photograph as evidence.

            • NotMyOldRedditName@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              3 days ago

              Hey AI can you swap this 2015 corolla with a green 2019 Mazda 2.

              Keep the license plate the same!

              And remember THERE ARE FOUR PASSENGER DOORS NOT 6

  • DragonTypeWyvern@midwest.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 days ago

    My academic advisor in college was named Null

    Even I kept running into trouble because the system thought I didn’t have a registered advisor.

    • ploot@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      4 days ago

      I have never seen this happen, and I don’t know what tools would confuse the strings “null” or “Null” with NULL. From the comments in this thread, there are evidently more terribly programmed systems than I imagined.

  • Cousin Mose@lemmy.hogru.ch
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 days ago

    I’ve been doing web development for something like 20 years now and I just can’t imagine how shitty your backend is if this is an issue.

    • Dasus@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 days ago

      With LLM coding increasing, it might be going up. Idk am no pro, just worried.

      Tangential, but I find it hilarious how Gemini’s syntax fucks up all the time.

      I ask it to change my light called “CX2” to red. It complies, like usual, and it reads Okay, changing “CX2” to red., but what it says out loud is Okay, changing "CX two inches to red.

    • livingcoder@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 days ago

      It happened to a friend who wasn’t passing in the proper types into their stored procedures, all strings, and “null” (not case sensitive) conflicted with actual null values. Everything in the web interface were strings, and so was null.

      For some people it takes this mistake before they learn to always care about the data types you’re passing in.

    • timuchan@lemm.ee
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 days ago

      This was my thought as well, sanitize your inputs! Are they not quoting/casting to string before input?

        • limer@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 days ago

          Word press code, and plugins, do not sanitize out of the box. You have to call an additional function, each time, that is not provided automatically. Many home made plugins miss that; many popular plugins used to be home made ones

            • Atherel@lemmy.dbzer0.com
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              4 days ago

              Let’s take a blog and slap a whole e-commerce system on it through a plugin and let it auto translate with another one, what could go wrong. wait why is everything so slow, oh i need additional plugins for caching and one more for functionality XYZ why is everything broken now?!?

              Edit: Sorry, my app had a hiccup and posted my comment several times