本文旨在告知网站管理员和 IT 专业人员,当网站地址(HTTP 或 HTTPS URL)中包含用户信息时,Internet Explorer 会表现出什么行为。
默认情况下,由于发布安全更新 832894 而发布的 Windows Internet Explorer 版本不支持对 HTTP 和具有安全套接字层 (SSL) 的 HTTP 或 HTTPS URL 中的用户名和密码进行处理。Internet Explorer 或 Windows 资源管理器不支持下面的 URL 语法:
http(s)://username:password@server/resource.ext
本文章旨在告知您 Internet Explorer 的默认行为。如果在 HTTP 或 HTTPS URL 中包括用户信息,建议您研究本文描述的替代方法。有关 832894 安全更新的详细信息,请访问以下 Microsoft 网站:
背景信息
Internet Explorer 3.0 到 6.0 版本支持以下 HTTP 或 HTTPS URL 语法:
http(s)://username:password@server/resource.ext
您可以使用此 URL 语法自动发送用户信息到支持基本身份验证方法的网站。
恶意用户也可能会使用此 URL 语法来创建看起来好像是打开合法网站,但实际上是打开欺骗性(冒牌)的网站的超链接。例如,以下 URL 看起来好像是打开 http://www.wingtiptoys.com,但实际上是打开 http://example.com:
http://www.wingtiptoys.com@example.com
注意:在这种情况下,Microsoft Windows Server 2003 的 Internet Explorer 6 Service Pack 1 (SP1) 和 Internet Explorer 6 只会在地址栏中显示“http://example.com”。但是,较低版本的 Internet Explorer 会在地址栏中显示“http://www.wingtiptoys.com@example.com”。
此外,恶意用户可以使用此 URL 语法并结合其他方法来创建指向某个欺骗性(冒牌)网站的链接,但在所有版本的 Internet Explorer 的状态栏、地址栏和标题栏中都显示指向合法网站的 URL。
有关此问题的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
833786
(http://support.microsoft.com/kb/833786/zh-cn/
)
帮助识别欺骗性(冒牌)网站和恶意超链接及进行自我防护的步骤
默认行为更改说明
为解决“背景信息”一节中描述的某些问题,Internet Explorer 和 Windows 资源管理器不再支持处理这种形式的 HTTP 和 HTTPS URL。Windows 资源管理器和 Internet Explorer 不会使用包含用户信息的 URL 来打开 HTTP 或 HTTPS 站点。默认情况下,如果 HTTP 或 HTTPS URL 中包括用户信息,将显示具有以下标题的网页:
语法错误
注意:默认行为中的这一更改不会影响其他协议。例如,在安装 832894 安全更新之后,您仍然可以在 FTP URL 中包括用户信息。
安全更新、Service Pack 和由于发布安全更新 832894 而发布的 Internet Explorer 版本也会实现默认行为中的这一更改。
为用户提供的解决方案
用户在地址栏中键入 URL 或单击链接所打开的 URL
如果用户通常是在地址栏中键入包括用户信息的 HTTP 或 HTTPS URL,或单击 HTTP 或 HTTP URL 中包括用户信息的链接,那么您可以使用以下两种方法解决 Internet Explorer 中此新功能带来的问题:
- 不要在 HTTP 或 HTTPS URL 中包括用户信息。
- 当用户键入 HTTP 或 HTTPS URL 时,指示他们不要包括其用户信息。
如果网站使用基本身份验证方法,Internet Explorer 会自动提示用户输入用户名和密码。在某些情况下,用户可以选中该对话框中的“记住密码”
框来保存他们的凭据,以便于以后访问该网站。
为应用程序和网站开发人员提供的解决方法
由调用 WinInet 或 Urlmon 函数的对象打开的 URL
如果对象在调用 WinInet 或 Urlmon 函数时(如
InternetOpenURL)使用包括用户信息的 HTTP 或 HTTPS URL,请重写此对象以使用以下方法之一将用户信息发送到网站:
- 使用 InternetSetOption 函数并包括以下选项标志:
- INTERNET_OPTION_USERNAME
- INTERNET_OPTION_PASSWORD
注意:对于这些标志,InternetSetOption 选项必须有一个通过 InternetConnect 函数返回的句柄。因此,如果应用程序使用 InternetOpenUrl 函数,请修改该应用程序以使用 InternetConnect、HttpOpenRequest 和 HttpSendRequest WinInet 函数。有关如何使用这些函数的详细信息,请访问以下 Microsoft 网站: - 使用 IAuthenticate 接口。有关如何使用 IAuthenticate 接口的详细信息,请访问以下 Microsoft 网站:
注意:使用该替代方法,您可以打开 URL 欺骗技术所重定向的网站。显示整个 URL,包括重定向的位置。例如,显示以下 URL:
http://www.wingtiptoys.com@www.example.com
用户仍然会到达重定向的网站。在这个例子中,用户到达 http://www.example.com。
由使用状态管理凭据的脚本打开的 URL
如果在您的脚本代码中包括了含有用户信息的 HTTP 或 HTTPS URL,那么要管理状态信息,请更改您的脚本代码以使用 Cookie 而非用户信息。有关如何使用 Cookie 管理状态信息的详细信息,请访问以下 Internet 工程任务组 (IETF) 网站:
若要查看如何使用 Visual Basic 读写 ASP.NET Web 程序中的 HTTP Cookie 的示例,请访问以下 Microsoft 网站:
如何禁用这一新行为或在其他程序中使用此行为
您可以设置注册表值,以在承载 Web 浏览器控件的其他程序中使用这一新行为,或在 Windows 资源管理器和 Internet Explorer 中禁用这一新行为。
承载 Web 浏览器控件的程序如何使用这一新默认行为处理 HTTP 或 HTTPS URL 中的用户信息
默认情况下,处理 HTTP 或 HTTPS URL 中用户信息的这一新默认行为只适用于 Windows 资源管理器和 Internet Explorer。要在其他承载 Web 浏览器控件的程序中使用这一新行为,请创建一个名为
SampleApp.exe 的 DWORD 值,其中
SampleApp.exe 是运行该程序的可执行文件名。在下列注册表项中,将该 DWORD 值的数值数据设置为
1:
- 为程序的所有用户设置以下注册表项中的值:
- 只为程序的当前用户设置以下注册表项中的值:
如何禁用处理 HTTP 或 HTTPS URL 中的用户信息的新默认行为
如果需要我们为您禁用 Windows 资源浏览器和 Internet Explorer 中的新默认行为,请转到“
帮我修复此问题”部分。如果您要自己修复此问题,请转到“
让我自己修复此问题”部分。
帮我修复此问题
若要自动修复此问题,请单击“修复”
按钮或链接。单击“文件下载”
对话框中的“运行”
,然后按照“修复”向导中的步骤操作。
修复此问题 Microsoft Fix it 50642
注意- 此自动修复程序将对程序的所有用户禁用 Windows 资源管理器和 Internet Explorer 中的新默认行为。
- 此向导可能只提供英文版本。但是,此修补程序也适用于 Windows?的其他语言版本。
- 如果所使用的计算机中并未出现此问题,则可将“修复此问题”解决方案保存至闪存驱动器或 CD 中,然后在出现此问题的计算机上运行该解决方案。
然后,请转到“
此方法是否已修复问题?”部分。
我自己修复此问题
要禁用 Windows 资源管理器和 Internet Explorer 中的新默认行为,请在以下某个注册表项中创建
iexplore.exe 和
explorer.exe 的 DWORD 值并把它们的数值数据设置为
0。
- 为程序的所有用户设置以下注册表项中的值:
- 只为程序的当前用户设置以下注册表项中的值:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
此方法是否已修复问题?
- 请检查是否已修复此问题。如果已修复,您就完成了本部分内容。如果未修复,则可与支持部门联系
(http://support.microsoft.com/contactus?ln=zh-cn#tab0)
。 - 非常感谢您提供反馈意见。若要提供反馈意见或报告使用此解决方案出现的任何问题,请在“帮我修复此问题
(http://blogs.technet.com/fixit4me/)
”博客中留言或向我们发送电子邮件
(mailto:fixit4me@microsoft.com?Subject=KB)
。
有关 HTTP 或 HTTPS URL 的标准 URL 语法的说明,请访问下面的 Internet 工程任务组 (IETF) 网站:
Microsoft 提供了第三方联系信息以便于您寻求技术支持。这些联系信息如有更改,恕不另行通知。Microsoft 不保证这些第三方联系信息的准确性。
文章编号: 834489 - 最后修改: 2011年6月30日 - 修订: 2.0
这篇文章中的信息适用于:
- Windows Internet Explorer 8
- Windows Internet Explorer 7
- Microsoft Internet Explorer 6.0
- Microsoft Internet Explorer 5.5
- Microsoft Windows Server 2003 Service Pack 1
- Microsoft Windows Server 2003 Service Pack 2
- Windows Vista Business
- Windows Vista Enterprise
- Windows Vista Home Basic
- Windows Vista Home Premium
- Windows Vista Starter
- Windows Vista Ultimate
| kbresolve kbfixme kbmsifixme KB834489 |
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。