Прежде всего, вы должны ограничить свои имена пользователей только определенным набором символов (если возможно), возможно [A-Za-z0-9_]
или что-то в этом роде, так как существует множество способов злоупотребления большим выбором укороченных юникодов. Даже тогда другие пользователи, такие как moderator
(и альтернативные sp311in9 $ ничего), могут использоваться для пользователей фишинга. Вы не сможете заблокировать все неподходящие имена пользователей раньше времени.
В качестве примера (в том числе и то, что вы будете иметь дело с тем, если вы решите разрешить символы Unicode), посмотреть на username anti-spoof code и титульный лист черные списки Википедии (1, 2). (Знаете ли вы, что свастика существует как символ Юникода?) Многие из записей последних двух не применяются к именам пользователей или применимы только к конкретным случаям сбоев, но это должно сделать это ясно. На самом деле, многочисленные имена пользователей каждый день - reported to the site's administrators.
Я не могу не хихикать, увидев ваше имя пользователя, кто бы вы ни были. – BoltClock
вы должны отключить имя пользователя facebook_sucks, определенно – James
Определенно имя пользователя «Mark Zuckerberg» должно быть отключено для пользователей –