Self-documenting Code

Aijan@programming.dev to Programming@programming.dev – 84 points –
Self-documenting Code
lackofimagination.org
72

You are viewing a single comment

Why the password.trim()? Silently removing parts of the password can lead to dangerous bugs and tells me the developer didn't peoperly consider how to sanitize input.

I remember once my password for a particular organization had a space at the end. I could log in to all LDAP-connected applications, except for one that would insist my password was wrong. A trim() or similar was likely the culprit.

Another favorite of mine is truncating the password to a certain length w/o informing the user.

Saving the password truncates but validation doesn't. So it just fails every time you try to log in with no explanation. The number of times I have seen this in a production website is too damn high.

It also can truncate on the BE side when using the damn varchar

Passwords should be hashed, not stored plain text! Hashes are always the same length so this is an immediate sign they are doing horribly insecure things with your password.

The password needs to be 8 letters long and may only contain the alphabet. Also we don't tell you this requirement or tell you that setting the password went wrong. We just lock you out.

Thanks for the tip. password.trim() can indeed be problematic. I just removed that line.

The reason for leaving in the password.trim() would be one of the few things that I would ever document with a comment.