На странице регистрации поле "Электронная почта" проходит валидацию с буквами отличными от латиницы после символа @ и до точки
Closed this issue · 10 comments
Описание:
Регистрация проходит, если в поле "Электронная почта" на странице регистрации указать в адресе электронной почты не латинские буквы справа после @ и до точки перед доменом.
Пример: nnn@ната.ru, nnn@مولود.ru.
При этом в админке в адресе электронной почты вместо букв не латинского алфавита подставляется другая комбинация из букв латинского алфавита, символов и цифр - nnn@xn--80aa1bv.ru
Шаги воспроизведения:
Открыть страницу регистрации https://dev.githance.com/auth/registration
Ввести в поле емайл: nnn@ната.ru
Нажать кнопку Зарегистрироваться.
Ожидаемый результат:
Поле подсвечивается красным, появляется сообщение "Введите правильный адрес электронной почты"
Фактический результат:
Проходит регистрация открывается страница письмо отправлено, в админке есть запись, при этом вместо букв не латинского алфавита поставляется другая комбинация из бук латинского алфавита, символов и цифр - nnn@xn--80aa1bv.ru
Окружение:
windows 10 х64, Яндекс.Браузер 22.11 разрешение экрана 1366x768, Chrome 107 разрешение экрана 1920x1080, Safari разрешение экрана 1536x864, Opera 1280x720
Дополнительная информация:
@eiiao Скрины можно просто вставлять через Ctrl+V.
Если хочется, чтобы они не загромождали репорт, то можно под под кат.
Делается так:
<details>
<summary>Скрины</summary>
![image](https://user-images.githubusercontent.com/80767090/228063912-5d5a1be5-ec8d-474f-955c-e3077456ae49.png)
</details>
@Ridmel , Рома, привет! Спасибо за инструкцию про вставку скрин. Про дубликат не совсем так. В репорте Олега речь о проверке валидации домена электронной почты , т.е. символов в email после точки em@ail.ru, в данной проверке речь о валидации после знака @ и до точки em@ail.ru.
@eiiao Ясно. Просто с точки зрения бэкенда это один и тот же случай, только описанный разными словами. Поэтому я на самый последний повесил лейбел дубликат.
Исправлено в PR:
@Ridmel , Рома, проверила регистрацию на двух адресах - nnn@натааа.ru и nnn123@مولود.ru , оба адреса прошли валидацию , в БД создалась запись.
В общем, это на стороне фронта, а точнее именно самого браузера, происходит. Браузер конвертирует части почты, в которых присутствуют не ASCII символы, в punycode. А предыдущим фиксом я закрыл валидацию на бэкенде всех символов, кроме ASCII, но так как он шлет шлет punycode, т.е. имена перекодированные в ASCII, то валидация проходила и пользователь создавался. Поправлю.
С 3 попытки.
Исправлено в PR: