Действительная регистрация доменного имени для символов Юникода
Я пытаюсь выяснить, что действительно для регистрации доменного имени, по-видимому, некоторые символы Юникода переводятся странно, а другие - нет.
Этот адрес:
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 для всех.