2017-03-08 150 views
0

我想弄清楚什麼是有效的域名註冊,顯然有些Unicode字符被翻譯怪異而其他人根本沒有。有效的域名註冊的Unicode字符

該地址:

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只會替換第二個網址上的Unicode。

回答

2

看來您正在嘗試執行IDN homograph attack。維基百科頁面很好地解釋了Chrome在阻止你做什麼。

+1

我真的只是在嘗試攻擊的方式。根據此Chrome只允許包含在我優先選擇的語言字符集中的字符,但我不知道unicode'N'包含在英文中 –

+0

@ johnny5:Unicode內部的字符看起來很像您想象的那樣。你可以在這裏試試看:https://www.irongeek.com/homoglyph-attack-generator.php – mootmoot

+0

@mootmoot顯然網站只會顯示它是否與主要頂級域名不衝突,並且是單一語言內的一致性 –

1

首先,給你的問題。 無論瀏覽器如何,有效域名必須符合RFC1035,即整個域名不得超過255個有效ASCII字符(以八位字節爲單位),並且不區分大小寫。即使IDN也必須遵守這一標準。因此爲了顯示IDN,RFC發展出了Punycode'xn--'轉換的想法。

然後有IDN同形異義詞攻擊概念的證明。目前,Unicode.org更新並維護一個可疑列表。您可以下載當前版本TR39並使用它。

此前,Chrome和Firefox會將域名開頭xn--轉換爲在瀏覽器字體緩存中發現的對應Unicode。如果瀏覽器找不到字體,它將顯示原始'xn--'punycode域名。

這是已知問題。 Firefox甚至有手動選項來啓用/禁用Punycode域名顯示。谷歌決定刪除轉換後版本58+,而火狐53將遵循顯示Punycode作爲默認。

我不知道Google是否會在TR39中顯示Unicode,或者是否只是將Punycode從Unicode轉換爲Unicode。