AndrewPaglusch / FlashPaper

One-time encrypted password/secret sharing
MIT License
377 stars 60 forks source link

Fix character length validation #64

Closed AndrewPaglusch closed 2 years ago

AndrewPaglusch commented 2 years ago

Despite being on a Unix-based OS, browsers seem to always use \r\n for the newline character in forms. Browsers count these characters as a single character when using the maxlength attribute on <textareas> fields. However, the server-side validation counts \r\n as two characters.

This can result in edge-cases where a user is allowed (client-side) to enter a secret with a length greater than the max length as defined in the max_secret_length setting.

This PR replaces \r\n with \n in the secret text before counting the character length for validation purposes. This does not make any changes to line endings of the submitted secret. Thank you to @pgrungi for bringing this bug to my attention!

Resolves: #62