Нет , для этого нет веских причин. Есть причины безопасности для этого - но не хорошие.
Один и тот же ответ давался здесь и в других местах снова и снова: он дает злоумышленнику дополнительную информацию, и вы хотите дать им как можно меньше информации. Это работает только против глупых атакующих, и вам не о чем беспокоиться. Этот аргумент имеет существенный недостаток - как с теоретической, так и с практической точки зрения.
Имя пользователя часто можно проверить другими способами в любом случае (практично)
Пример электронной почты особенно ироничен, поскольку весь смысл адреса электронной почты состоит в том, чтобы дать его другим людям, чтобы они могли отправить вам электронное письмо. Адреса электронной почты не секретны. (Конечно, вы не хотели бы давать список существующих адресов, но говорить, существует ли данный адрес или нет, это другое дело.)
В случаях, отличных от электронной почты, вы часто можете проверить имя пользователя, пытаясь зарегистрироваться на нем. Если имя пользователя уже существует, у системы нет иного выбора, кроме как сказать вам об этом! Даже если бы он попытался быть застенчивым и дал вам типичную ошибку, злоумышленник с половиной мозга все равно бы это выяснил, в то время как обычные пользователи были бы раздражены невозможностью зарегистрироваться и уйти.
Имя пользователя не является секретным (теоретическое)
В сфере безопасности важно определить, что является секретом, а что нет. Если люди считают, что имя пользователя является секретным, и это не является проблемой - у них есть иллюзия безопасности , что хуже, чем отсутствие безопасности. Пользователь должен быть уверен в этом: пароль является секретным, имя пользователя не . Даже если вам неизвестны какие-либо способы получения имени пользователя, вы не можете полагаться на тот факт, что может тот, у кого есть ваш пароль, не будет иметь вашего имени пользователя. Если ваш пароль взломан, все кончено.
Поскольку имя пользователя обычно не может быть по-настоящему секретным (в конце концов, оно идентифицирует пользователя), оно может стать «полусекретным»: то, что обычно не , как правило, раскрывается, но происходит, если вы нажимаете достаточно сильно. Люди часто думают, что два "полсекреты" делают секрет, но они этого не делают. Конечно, они не думают об этом в таких терминах. Вместо этого они подумают: «Это не так уж плохо, если у меня есть простой ПИН-код, потому что никто не может использовать его без моей банковской карты, в любом случае» и отдельно подумают: «Не так уж плохо, если я потеряю свою банковскую карту, потому что никто не может использовать его без ПИН-кода в любом случае».
Даже если имя пользователя было секретом, это не улучшило бы безопасность. Почему бы и нет? Потому что теперь у вас просто есть два пароля. Два пароля - это , а не «глубокая защита» - это просто один пароль , который разделен на две части (одну из которых довольно легко взломать). Это менее эффективно, чем просто сделать пароль вдвое длиннее (или вдвое сложнее).