Доменные имена – важнейшая часть интернета – и, пожалуй, вторая после IP-адресов. Кажется, что DNS и сами доменные зоны остаются неизменными десятилетиями, однако на самом деле изменения есть и они накапливаются. И можно в один прекрасный момент оказаться лицом к лицу с технологией, которая стала настолько другой, что ваш продукт больше не работает…
Павел, спасибо за комментарий! Нам важно, что есть люди, которым вопросы поддержки IDN действительно интересны.
Вопрос нормализации заслуживает отдельного поста, а что касается валидации IDN/EAI, то мы специально упрощаем схему, чтобы ей можно было пользоваться в реальности. Вы сами убедились, что форматная валидация полного IDN – практически нерешаемый вопрос, поэтому мы и советуем для таких случаев либо совсем простую проверку длины, либо перевести в Punycode и сделать DNS-запрос. А для кириллических доменов – да, можно проверять формат, там все просто.
Если вас интересует эта тема, присоединяйтесь к нашему сообществу – у нас есть Bug Bounty программа, а скоро будет программа для контрибуторов opensource.
Проверять DNS запросами это недопустимое решение. Если так сделает значительное количество разработчиков - это может положить корневые DNS, потому что весь мусор, не проходящий проверки, будет проходить до них.
мы специально упрощаем схему, чтобы ей можно было пользоваться в реальности
Мария, ею небезопасно пользоваться в реальности в таком виде. Это вопрос безопасности проектов.
Например, при авторизации по емейлу: в случае неверной валидации и нормализации IDN-емейлов можно войти в систему под другим пользователем, потому что два емейла оказываются для системы равнозначными. С этим багом в своё время сталкивался даже GitHub.