Действительная регистрация доменного имени для символов Юникода

Я пытаюсь выяснить, что действительно для регистрации доменного имени, по-видимому, некоторые символы Юникода переводятся странно, а другие - нет.

Этот адрес:

http://xn--ippleman-dmj.com/

Переводится на:

http://Nippleman.com/

а также

http://xn--ggle-0nda.com/

следует перевести на:

http://gοοgle.com/

но по какой-то причине браузер предотвращает это.

Как определяется формат этих доменов и что блокируется браузером?

http://xn--ippleman-dmj.com/ является действительным URL, а http://www.gοοgle.com не является. Тем не менее, Chrome заменяет только Юникод на втором URL.

2 ответа

Похоже, что вы пытаетесь провести IDN-гомографическую атаку. На странице Википедии хорошо объясняется, что делает Chrome, чтобы остановить вас.

Во-первых, на ваш вопрос. Действительное доменное имя должно соответствовать RFC1035 независимо от браузера, то есть полное доменное имя не должно превышать 255 действительных символов ASCII (в октете), и оно не учитывает регистр. Даже IDN должен соответствовать этому стандарту. Таким образом, для отображения IDN, RFC эволюционируют и предлагают идею преобразования Punycode 'xn--'.

Затем есть доказательство концепции атаки с использованием гомографа IDN. В настоящее время Unicode.org обновляет и поддерживает запутанный список. Вы можете скачать текущую версию TR39 и поиграть с ней.

Ранее Chrome и Firefox будут переводить доменное имя, начиная с xn-- Соответствие Unicode найдено внутри кеша шрифтов браузера. Если браузер не может найти шрифт, он отобразит необработанное имя домена "xn--" punycode.

Это известные проблемы. Firefox даже имеет ручную опцию для включения / выключения отображения имени домена Punycode. Google решает удалить пост конверсии версии 58+, в то время как Firefox 53 последует, чтобы сделать Punycode по умолчанию.

Я не знаю, будет ли Google показывать Юникод (ы), не входящий в TR39, или просто удалить преобразование Punycode в Unicode для всех.

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