URL中的UTF-8字符

时间:2011-07-08 13:20:52

标签: html url utf-8

我偶然发现了以下文章:

http://www.josscrowcroft.com/2011/code/utf-8-multibyte-characters-in-url-parameters-%E2%9C%93/

文章讨论了在URL中使用UTF-8字符。

我想知道使用它是否安全。

我和撰写文章的人基本上有相同的设置(浏览器+操作系统)。所以我无法真正测试它。

那么......在URL中使用UTF-8字符是否安全?

奖金问题:如果安全的话,为什么没有多少网站使用它?

3 个答案:

答案 0 :(得分:5)

url中的Unicode字符(我不是在谈论域名)可以安全使用。如果您在自己的网站上使用它们,则不存在安全风险。 (如果Oded说他最终用户在网页上使用unicode访问欺诈网站,则会有一些风险。)

唯一真正的问题是旧浏览器(和操作系统)如何显示它们。不支持它们的浏览器会在网址中显示那些丑陋的百分比编码字符。您可能还必须对html中的网址进行百分比编码,以防旧版浏览器不为您编码,并且用户无法关注链接(这很糟糕)。现代浏览器在地址栏中显示已解码的URL,但使用编码版本发送请求,因此用户始终可以看到漂亮的unicode字符。

答案 1 :(得分:1)

任何支持IDN的浏览器都可以。

然而,IDN在不同的Web服务器以及代理和其他互联网基础设施上得不到很好的支持,因此大多数网站都不支持它,并确保人们可以访问它们......

而且,正如@Rook所暗示的那样,以这种方式使用UTF-8仍然存在安全问题(例如XSS)。

答案 2 :(得分:-7)

UTF-8还有很长的路要走...绝对不安全。

在文化上,我喜欢这样。我无法想象用中文字母编写/记住URL地址,或者他们也这样做。