Имена пользователей и пробелы

В последние годы я регистрировался в различных приложениях и платформах, размещенных в сети или офлайн.

Почему в именах пользователей не допускаются пробелы, поскольку они очень естественны для имен, и большинство вычислительных систем могут обрабатывать их эффективно.

(Многие люди могут задать аналогичные вопросы о других специальных символах, которые являются незаконными. Но их случай гораздо более понятен, поскольку они даже не естественны для реальных схем именования. И конечно!)

Я согласен с тем, что в именах пользователей должны быть разрешены пробелы. Фактически, вы можете использовать пробелы в своем имени пользователя Stack Overflow; воспользуйтесь этим! :-D

Chris Jester-Young 16.10.2008 14:40

Да, но вы не можете использовать свое настоящее имя, если в нем есть апостроф.

DOK 16.10.2008 16:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
2
16 205
7

Ответы 7

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

Однако я согласен с вами: в сегодняшней среде, вероятно, не так много причин продолжать это делать, за исключением случаев, когда совместимость с устаревшими версиями имеет смысл (* nix и т. д.).

Пробелы в именах пользователей отлично работают в unix. Я уверен, что они испортят множество скриптов людей, возможно, включая те, которые идут вместе с ОС, но все основные вещи работают нормально.

Mark Baker 16.10.2008 14:59

Я полагаю, потому что какой-то код где-то все еще обрабатывает ввод как набор параметров, разделенных пробелами, во многом так же, как командная строка Windows обрабатывает имена файлов без кавычек. Например, если вы должны передать имя пользователя внешнему исполняемому процессу, написанному на C, где имя пользователя было передано в командной строке, оно поступит в приложение C в виде двух аргументов.

Хотя на практике это больше не может происходить, как и многие специальные символы, я предполагаю, что это причина, по которой он там.

Я думаю, потому что обычно это тенденция обрезать значения полей ввода до того, как они будут фактически сохранены, скажем, в базе данных.

Поскольку мы удаляем пробелы и разрешаем их в пароле или имени пользователя, вы можете себе представить, что возникнет большая проблема, если пользователь введет пароль как «PWD».

Обрезка удаляет пробелы (и другие недопустимые символы) в начале и в конце данных, а не между допустимыми символами.

VarunGupta 16.10.2008 15:03

Что делать, если пользователь вводит пароль как pwd <пробел>

Nrj 16.10.2008 15:11

Хотя это не было оговорено исключительно, но якобы это не тот случай, который мы обсуждаем.

VarunGupta 16.10.2008 22:25

Если пароль хеширован (как и должно быть), то это не проблема.

Macha 31.03.2010 18:45

Я часто использую пробелы в паролях, если они принимаются, они, вероятно, хешируют их, и я знаю, что мой пароль более безопасен. Любая форма фильтрации паролей (запрещающие символы, отсутствие пробелов, максимальная длина и т. д.) - это огромный красный флаг для меня, чтобы покинуть сайт и никогда не возвращаться.

Steve Byrne 18.05.2018 11:36

Это предотвращает смешение схожих комбинаций имен, например. «Джон Смит» и «Джон Смит». Это также упрощает автоматическое распознавание имен, которые появляются в тексте.

По сравнению с JohnSm1th и J0hnSmith? Я просто не вижу в этом причины, извините.

Matthew Scharley 16.10.2008 15:01

Независимо от того, как вы это видите, на самом деле это одна из причин, по которой это делается.

jedediah 16.10.2008 16:58

Это зависит от того, где они будут использоваться. Отказ от использования пробелов в именах пользователей unix имеет смысл по той же причине, по которой имеет смысл не использовать их в именах файлов unix - их сложно вводить в командной строке. Тем не менее, unix допускает пробелы в именах пользователей, а также в именах файлов.

Я не вижу причин, по которым такие вещи, как веб-приложения, не допускают пробелов.

На самом деле меня больше всего раздражает то, что веб-приложения не позволяют использовать @ в именах пользователей. Когда это что-то с миллионами пользователей, шансы на то, что имя, которое я действительно хочу, будет доступным, невелики, поэтому мне нравится использовать свой адрес электронной почты, который, по крайней мере, гарантированно будет уникальным.

Я думаю, что на самом деле это, вероятно, одна из тех условностей, которые необходимо нарушить. Большинство систем теперь имеют дело с большим количеством сложных данных и используются для правильной обработки текста, который включает пробелы. Я был рад обнаружить, что fogbugz (еще один плагин) примет ваш адрес электронной почты, ваше имя пользователя или ваше настоящее имя, как вы его ввели; в качестве имени пользователя при входе в систему.

Это просто соглашение, которое все еще существует со времен восьмибуквенных имен файлов и, вероятно, также восьмибуквенных имен пользователей. Я бы посоветовал вам разрешить это в своем веб-приложении и позволить миру следовать за вами. :)

Одна тонкая проблема, связанная с пробелами в именах пользователей, заключается в том, что символ пробела «невидим», и два последовательных пробела могут выглядеть очень похожими на одиночный пробел. Ошибки, возникающие при вводе двух пробелов вместо одного, может быть трудно обнаружить, и это одна из причин, чтобы запретить все пробелы.

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

Если вас беспокоит несколько пространств, я бы сказал, что гораздо более удобное решение - свернуть несколько пространств в одно, а не полностью их запретить.

Bryan Oakley 16.12.2009 15:05

Другие вопросы по теме