• Vigge93@lemmy.world
    link
    fedilink
    arrow-up
    13
    ·
    9 days ago

    That would be an extremely bad idea tho, because it would allow a malicious attacker to

    1. Try random usernames, and if the website returns a hash they know that user exists
    2. Once they have the hash, and the hashing algoritm, it is much easier to brute-force the password, bypassing any safeguards on the server

    Username/password validation should happen entirely server-side, with as little information as possible provided to the client

    • grrgyle@slrpnk.net
      link
      fedilink
      arrow-up
      8
      ·
      9 days ago

      Username/password validation should happen entirely server-side, with as little information as possible provided to the client

      Yyyup. This is why you also why it’s good practice to respond with HTTP 404 if a public user has tried to access user data they shouldn’t have access to, whether it exists or not. Don’t give them the hint that they hit a path that has forbidden data.

    • aesthelete@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      9 days ago

      Username/password validation should happen entirely server-side, with as little information as possible provided to the client

      💯

      It’s recommended practice to not even tell them which half of the username/password combination failed upon authentication failures.

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

            You are making an unfounded assumption that the password is sent to the client which does the check and then shows the message rather than the server doing the check and responding with the message back to the client.

            • aesthelete@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              9 days ago

              Nah I’m not, look above. There’s a way to do this that isn’t terrible. I just kinda assume that they aren’t doing it properly because I’ve worked in software for decades.

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

                No one is reimplementing their hashing algorithm in JavaScript. Doesn’t matter how many decades in the industry you have, that’s a silly assumption.

                The parts of security here that involve best practices are invisible to the user. Things such as salting which many do not do but also how they handle the reset token which many do not think about.

                However, none of that makes a good meme for people cosplaying cyber security gurus.

                • aesthelete@lemmy.world
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  edit-2
                  8 days ago

                  Of course they wouldn’t implement it themselves, that’s what the wonderful world of npm is for. /s

                  The software I’ve worked in is full of bizarre, dangerous junk. I used to assume that people did things at least the easier way if not the right way. Now, I expect them to do the dumbest, wrongest most esoteric thing possible and I’m often right.

                  anecdote

                  I once worked with a person that was essentially maintaining a series of statically compiled hashmaps by hand instead of, you know, doing the obvious and externalizing the fucking thing into a database table. The insane bastard even sat there incrementing the initial collection sizes when he got requests to add in new data.