51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2828|回复: 0
打印 上一主题 下一主题

Internet Explorer 7 中的国际化域名支持

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-11-14 17:42:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Eric Lawrence

Microsoft Corporation






浏览器支持导航到以用户本地语言编写的 URL,对促进 Internet 的真正国际化至关重要。 Internet Explorer 7 可以导航到由来自全球各种语言 Unicode 字符所构成的国际化域名 (IDN)。 IDN 依赖于一种众所周知的“Punycode”标准机制,它仅使用全球 DNS 系统所允许的 ASCII 字符对 Unicode 域名进行编码。

此更改暗示兼容原有 URL,因为早期版本的 Internet Explorer 是以不同格式(ANSI 和 UTF-8)对域名进行编码。

为缓解那些与 Unicode 相类似字符所造成的安全威胁,Internet Explorer 可能会对一些现有的 IDN 名称采用编码格式,以防止电子欺骗攻击。

本文的其他部分将帮助您了解如何解决此功能的兼容性影响,以及如何生成可在 Internet Explorer 7 中正确导航的 URL。

返回页首
了解兼容性影响
最终用户和网络管理员

作为 Internet Explorer 用户,您可以通过下列方式来体验 IDN 支持的兼容性影响:

• 故障现象: Internet Explorer 以编码格式(“xn--”开头)显示 Web 地址,随即出现信息栏。 信息栏包含如下文本: “此 Web 地址包含有当前语言设置下无法显示的字母或符号。”

原因: 为避免用户被误导的域名所“欺骗”,当域名中包含用户首选的内容语言列表所未曾使用的字符时,Internet Explorer 将显示编码格式。

外表相似的攻击(也称作“同形词”攻击)可能发生在 ASCII 字符集内部(比较常见的示例如 www.example.comwww.examp1e.com,第二个 URL 中用数字 1 替换了字母 L)。 但是在 IDN 中,字符集从几十个字符扩展到了全球所有语言的数以千计的字符,因此增加了欺骗攻击的危险性。

解决方法: 解决方法: 可以向已配置的语言集添加语言,方法是单击信息栏或选择“工具”|“Internet 选项”然后单击“常规”选项卡上的“语言”按钮。 请注意,已配置语言的顺序是很重要的,因此,您应确保首选内容语言第一个显示在列表中。

网络管理员可以选择禁用信息栏,方法是将 HKLM 或 HKCU \Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings 下名为 DisableIDNPrompt 的 DWORD 设置为 1。

• 故障现象: 当导航到域名包含 Unicode 字符的 Intranet 网站时,浏览器可能会找不到该站点从而显示 HTTP/404 错误页面。

原因: 以前版本的 Internet Explorer 在表示包含非 ASCII 字符的 Intranet 域名时使用不同的 URL 格式。 有些环境可能尚不支持新的 IDN Punycode 标准,因此有些使用 IDN Punycode 地址格式的站点可能会无法访问。

解决方法: 可以使用 Internet 控制面板恢复到 Unicode 域名的 IE6 处理。 选择“工具”|“Internet 选项”。 在“高级”选项卡上,滚动到“国际”部分。 根据是否通过代理服务器来访问目标域,可选择“取消选中发送 IDN 服务器名称”和/或“通过代理连接发送 IDN 服务器名称”。

网络管理员可选择禁用 Punycode 和恢复到 IE6 行为,方法是设置 HKLM 或 HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings 下名为 EnablePunycode 的 DWORD。

• 如果值为 0,则从不使用 Punycode。

• 如果值为 1,则直接同原始服务器对话时使用 Punycode。

• 如果值为 2,则同代理服务器对话时使用 Punycode。

• 如果值为 3(默认),则同原始服务器和代理服务器对话时均使用 Punycode。



网站开发人员

作为网站开发人员,您可以通过下列方式来体验 IDN 支持的兼容性影响:

• 故障现象:Internet Explorer 以编码格式(“xn--”开头)显示 Web 地址,随即出现信息栏。 信息栏包含如下文本: “此 Web 地址包含有当前语言设置下无法显示的字母或符号。”

原因: 编码地址与非编码地址在视觉上不会产生混淆,因此该功能不会让欺骗者发动“网页仿冒”攻击来诱导用户公开机密信息的阴谋得逞。

外表相似的攻击(也称作“同形词”攻击)可能发生在传统的 ASCII 域名字符集内部(常见的示例如 www.example.comwww.examp1e.com)。 但是在 IDN 中,字符集从几十个字符扩展到了全球所有语言的数以千计的字符,因此增加了欺骗攻击的危险性。

Internet Explorer 对容许的 IDN 地址有大量限制,以保护用户免遭电子欺骗攻击。

如果以下任一条件成立,则域名以编码形式显示:

1.
域名包含用户所选语言之外的字符。 请注意,始终允许纯 ASCII 标签与现有站点兼容。

2.
域名包含不属于任何一种语言的字符。

3.
任何一个标签所包含的混合脚本,都不会在单一语言内部一起显示。 例如,在一个标签内希腊字符不能与西里尔字符混合。 (标签是域名的一部分,以点分隔。www.microsoft.com 包含三个标签,“www”、“microsoft”和“com”。) 此限制有助于防止“网页仿冒”诈骗行为,例如欺骗者注册一个域名,其中使用外表相同的西里尔字符“a”替换拉丁文字符“a”,使其与著名域名看起来一模一样。


解决方法: 确保您的域名在一个标签内不包含来自多种语言的字符。 如果需要使用多种语言,请每种语言使用一个标签。

确保编写域名所使用的字符是目标用户最有可能在其浏览器中已经配置的那种语言。

许多网站所有者选择使用 IDN 域名重定向到基于 ASCII 的域名。 在所有浏览器版本中均可访问 ASCII url,这样的域名在任何环境下都不会显示信息栏。

• 故障现象: 在使用脚本检索 DHTML 对象上的 URL 属性时,URL 可能会意外地作为 Unicode 返回。

原因: 若将 URL 属性指定为对象模型属性,则其会被转换为 Unicode 形式。 如果代码试图在 URL 字符串和其他脚本代码中的字符串之间进行比较,更会发生转换现象。

解决方法: 确保 URL 处理例程编写的可靠性,以处理域名编码中的不同之处。 特别是,在比较 JScript 字符串与 URL 时一定要使用 Unicode 而非 Punycode。 用浏览器语言的所有可能组合对脚本进行测试,以确保 URL 处理代码未使用错误的假设编写。


应用程序开发人员

作为一名应用程序开发人员,您可以通过下列方式来体验 IDN 支持的兼容性影响:

• 故障现象: 使用 WININET 连接到域名包含 Unicode 字符的网站时,网络组件可能会无法连接到站点。

原因: 以前版本的 WININET 在表示包含非 ASCII 字符的 Intranet 域名时使用不同的 URL 格式。 有些环境可能尚不支持新的 IDN Punycode 标准,因此有些使用 IDN Punycode 地址格式的站点可能会无法访问。

解决方法: 在发出 HTTP 请求之前,请使用 InternetSetOption(英文)函数配置 IDN。

• 若 dwIDNSettings 设置为 0,则不使用 Punycode。

• 如果值为 1,则直接同原始服务器对话时使用 Punycode。

• 如果值为 2,则同代理服务器对话时使用 Punycode。

• 如果值为 3(默认),则同原始服务器和代理服务器对话时均使用 Punycode。


• 故障现象: 使用代码在 DHTML 对象上检索 URL 属性,则在不同的用户设置下,URL 可能会意外地以 PunyCode 或 Unicode 返回。

原因: 为防止在 Internet Explorer UI 中遭受电子欺骗攻击,在指定为对象模型属性时,URL 属性会转换为它们的显示形式。 如果代码试图在 URL 字符串和其他代码中的字符串之间进行比较,更会发生转换现象。

解决方法: 确保 URL 处理例程编写的可靠性,以处理域名编码中的不同之处。 特别是,在比较字符串与 URL 时一定要使用 Unicode 而非 Punycode。 用浏览器语言的所有可能组合对代码进行测试,以确保 URL 处理代码未使用错误的假设编写。 在编写本机代码应用程序时,请使用 IURI API(英文)解析 URL 组件。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-10 16:44 , Processed in 0.067288 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表