It seems so weird to me that the passwords are not hashed leaving the client, and it’s considered good practice.
It seems so weird to me that the passwords are not hashed leaving the client, and it’s considered good practice.
As long as the password is sent over a secure channels (TLS) and doesn't leak somewhere on the server (e.g. logs), sending it plaintext from the client is not where most password breaches come from. But stuff like https://en.wikipedia.org/wiki/Secure_Remote_Password_protoco... would provide a solution for that.
if you just pass the hash back to the server, you can't verify that the password was secure.
More serious reason is imo js requirement, as I'm not aware of native support of password hashing in HTML forms. Also, different ways of hash keying/salting would make it either complicated or inflexible..