MBS-13857 / MBS-13893: Block invisible characters from usernames #3444
+45
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implement MBS-13857 / MBS-13893
Problem
There's recently been a bunch of abusive character creation involving the use of unicode tag characters to create multiple accounts with visually the same name. Additionally, we have blocked some other invisible characters from edit notes, but we still allow them in usernames - these can have the same effect.
Solution
This moves from simply using
sanitize
to block invalid characters in names to a newsanitize_username
method, that also runs the pre-existing methodremove_invisible_characters
and a newremove_tag_characters
method on the username on top ofsanitize
.Testing
Two tests (one per commit / set of characters) have been added to the
User::Register
test.