Подтвердить что ты не робот

Могу ли я безопасно обрабатывать почтовые адреса в нижнем регистре?

В теории электронные письма чувствительны к регистру. Но используя электронную почту в качестве системного входа, я хочу, чтобы все они были в нижнем регистре (т.е. [email protected] и [email protected] не могут быть разными пользователями).

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

Изменить: поскольку существует множество ответов "сохранить регистр при сохранении, игнорировать при входе": эта система сломалась бы, если бы у меня действительно было два разных пользователя john @smith и John @smith, не так ли?

Пример: john @smith и John @smith имеют пароль 123. Как узнать, какой из них только что прошел проверку подлинности?

4b9b3361

Ответ 1

Некоторые системы чувствительны к регистру.

Я бы предположил, что он будет сохранен, но будет игнорировать файловые системы Windows.

то есть. помните, что john подписал контракт с [email protected], но позвольте ему войти в систему как [email protected], [email protected] или [email protected]

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

Ответ 2

Согласно RFC 2821:

Локальная часть почтового ящика ДОЛЖНА БЫТЬ рассмотрена как чувствительная к регистру. Поэтому реализации SMTP ДОЛЖНЫ заботиться о сохранении локальных частей почтового ящика. Домены почтовых ящиков не чувствительны к регистру. В частности, для некоторых хостов пользователь "кузнец" отличается от пользователя "Смит". Однако использование чувствительности к регистру локальных частей почтового ящика препятствует интероперабельности и не рекомендуется.

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

Ответ 3

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

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

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

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

Ответ 4

IMHO хранит и отображает адрес так, как пользователь вводил его, причем не только потому, что RFP говорит, что вы должны уважать дело, а потому, что если пользователь имеет предпочтение, вы должны соблюдать это предпочтение. Это их адрес электронной почты. Я не поклонник систем, переформатирующих личные данные, которые я им предоставляю. Например, вы удивитесь, сколько систем INSIST называет меня "Tj", что явно неверно, а не "T.J." (+1 для SO для правильного выбора).

Итак, если Джон Смит подписывается как "[email protected]", то как Джон Смит хочет видеть свой адрес электронной почты (если он предпочитает). Я, вероятно, не позволил бы кому-то еще зарегистрироваться с адресом электронной почты "[email protected]", потому что шансы на подавляющее большинство, что это то же самое, что и на другой адрес учетной записи, но я не стал бы гадать с форматированием их адреса или другого Детали. В лучшем случае я мог бы рассказать им, если они дадут мне много ВСЕХ ЗАБОЛЕВАНИЙ, спрашивая, не хотят ли они чего-то большего... нежного.

Ответ 5

Да, это проблема. Я просто сделал небольшой тест на Linux (работает exim), и только почта с правильным случаем дошла до почтового ящика...

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

Ответ 6

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

Ответ 7

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

Я никогда не слышал, чтобы сообщение не передавалось правильно только потому, что дела были неправильными.

Ответ 8

Если вы используете его как системный логин, не нужно. Обычно (при разговоре о логинах) администратор и администратор - это один и тот же человек... так же, как и JohnDoe и johndoe... Кроме того, количество людей, использующих почтовые провайдеры, которые учитывают чувствительность к регистру, является способом, слишком низким.