Как вы думаете, повлияет ли сокращение длины имён пользователей на будущие проблемы с безопасностью сайта, если я изменю минимальную длину имени с 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.