Почему стоит поддерживать нелатинские домены в своем ПО
Почему стоит поддерживать нелатинские домены в своем ПО

Доменные имена – важнейшая часть интернета – и, пожалуй, вторая после IP-адресов. Кажется, что DNS и сами доменные зоны остаются неизменными десятилетиями, однако на самом деле изменения есть и они накапливаются. И можно в один прекрасный момент оказаться лицом к лицу с технологией, которая стала настолько другой, что ваш продукт больше не работает…

33

Вы очень сильно упростили схему валидации/нормализации таких доменов. Она гораздо сложнее. Весь StackOverflow завален вопросами про корректные алгоритмы валидации IDN, при этом там нет ни одного исчёрпывающего ответа. Ни одного.

Например, для валидации IDN в PHP-проектах можно использовать валидатор laminas: https://github.com/laminas/laminas-validator/blob/master/src/Hostname.php – это кусок бывшего Zend-фреймворка. Одна из лучших реализаций в OpenSource сейчас.

Но даже в ней куча багов, этот валидатор приходится обвешивать дополнительными проверками. Например, я отправил в этом году им баг с капсом в кириллических доменах: https://github.com/laminas/laminas-validator/pull/64

И именно вся эта сложность и становится преградой для повсеместного внедрения IDN-доменов. Их поддержка на техническом уровне – это очень затратная история. 

1
Ответить