Безопасно ли для сайта сокращение минимальной длины имени пользователя до 2

Как вы думаете, повлияет ли сокращение длины имён пользователей на будущие проблемы с безопасностью сайта, если я изменю минимальную длину имени с 3 на 2?

Нет, это небезопасно, так как автодополнение при поиске по именам из двух символов может парализовать вашу базу данных.

Если вы хотите сломать свой сайт и базу данных, пожалуйста, действуйте.

Так что, по-вашему, чем длиннее имя пользователя, тем оно безопаснее? Я думаю установить минимальную длину имени пользователя в 4 символа. Это лучше? Спасибо.

Я не думаю, что CodingHorror имеет в виду в первую очередь безопасность вашего сайта. Скорее всего, речь идет о снижении производительности сайта.

Вы будете поощрять пользователей выбирать минимально допустимый набор имен пользователей. Многие люди будут использовать свои инициалы из 2 или 3 символов вместо более осмысленного имени.

Снижение вариативности концентрирует больше пользователей на конечном узле дерева поиска, что увеличивает время обработки для автодополнения.

Вы можете увидеть, как энтропия и возможности для вариативности уменьшаются, сравнивая пространства имен при разной длине имен пользователей. Если бы использовалось каждое уникальное имя пользователя минимальной длины (A-Z, 0-9), то существовало бы только (26+10)^2 = 1 296 двухсимвольных имен пользователей. В то же время пятисимвольных имен пользователей было бы (26+10)^5 = 60 466 176.

Таким образом, одним из последствий более низкой энтропии, вероятно, станут более длинные списки автодополнения, где все варианты не видны пользователю, например, имя пользователя UU может быть 20-м в списке.

Конечно, существуют также вопросы безопасности, связанные с более тесным пространством имен, например, это делает структуры более предсказуемыми между системами и упрощает профилирование, например: https://freehaven.net/anonbib/papers/pets2011/p1-perito.pdf

Если сайт на китайском языке, а имена пользователей в основном китайские, то установка значения 2 может сработать, так как количество возможных одиночных букв огромно.

Да, 75 000 иероглифов CJK в Юникоде — это совершенно другое дело.

Я предположил, что zgzud скорее всего является славянским, а не китайской транслитерацией. Возможно, вы правы и в этом.

Спасибо за ваш ответ. Я из Китая, и мой сайт — китайский. Язык по умолчанию для сайта — китайский (Тайвань). Однако некоторые пользователи регистрируют имена пользователей на английском языке. Например, «zgzud» — это просто имя пользователя, это не моё китайское имя и не китайское имя вообще.

Я всё ещё немного запутался. Какой вариант вы бы порекомендовали? «Изменить настройки как в пункте 2 — это нормально» или «Изменить настройки как в пункте 4 или 5 — это лучше»? Спасибо!

Спасибо за ваш ответ. Как вы считаете, нормально ли изменить минимальную длину имени пользователя на 2 для китайского сайта? Однако я думаю, что некоторые пользователи всё ещё будут регистрироваться с именами на английском языке.

На самом деле, меня больше всего беспокоит взлом. Если я установлю минимальную длину имени пользователя равной 2, окажет ли это негативное влияние на сайт, включая производительность и безопасность?

Спасибо!

Если ваш сайт не закрыт от внешнего мира, имена пользователей уже видны в профилях, сообщениях и в разделе /users.