Internet Explorer 不支持网站地址中的用户名和密码, (HTTP 或 HTTPS URL)

警告

已停用、不受支持的 Internet Explorer 11 桌面应用程序在某些版本的 Windows 10 上已通过 Microsoft Edge 更新永久禁用。 有关详细信息,请参阅 Internet Explorer 11 桌面应用停用常见问题解答

本文旨在通知网站管理员和 IT 专业人员在网站地址中包含用户信息时 Internet Explorer 的行为, (HTTP 或 HTTPS URL) 。

原始产品版本: Ie
原始 KB 编号: 834489

摘要

默认情况下,从安全更新832894发布开始发布的 Internet Explorer 版本不支持使用安全套接字层 (SSL) 或 HTTPS URL 处理 HTTP 和 HTTP 中的用户名和密码。 Internet Explorer 或 Windows Explorer 不支持以下 URL 语法:

http(s)://username:password@server/resource.ext

本文旨在通知你 Internet Explorer 的此默认行为。 如果在 HTTP 或 HTTPS URL 中包含用户信息,建议浏览本文中所述的解决方法。

背景信息

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

注意

在这种情况下,Internet Explorer 6 Service Pack 1 (SP1) 和 Internet Explorer 6 for Microsoft Windows Server 2003 仅显示在 http://example.com 地址栏中。 但是,早期版本的 Internet Explorer 会显示 http://www.wingtiptoys.com@example.com 在地址栏中。

此外,恶意用户可以将此 URL 语法与其他方法一起使用,以创建指向欺骗性 (欺骗) 网站的链接,该网站显示指向所有版本的 Internet Explorer 状态栏地址栏标题栏中 合法网站的 URL。 有关此问题的详细信息,请单击文章编号 833786 以帮助保护自己免受欺骗性 (欺骗) 网站和恶意超链接。

默认行为更改的说明

为了缓解 后台信息 部分中讨论的问题,Internet Explorer 和 Windows Explorer 不再支持处理此表单的 HTTP 和 HTTPS URL。 Windows Explorer 和 Internet Explorer 不会使用包含用户信息的 URL 打开 HTTP 或 HTTPS 网站。 默认情况下,如果 HTTP 或 HTTPS URL 中包含用户信息,将显示具有以下标题的网页:

语法错误无效。

注意

默认行为的此更改不会影响其他协议。

此默认行为的更改也由安全更新、Service Pack 和 Internet Explorer 版本实现,这些版本从安全更新832894发布开始发布。

用户的解决方法

  1. 由在地址栏中键入 URL 或单击链接的用户打开的 URL

    如果用户通常在地址栏中键入包含用户信息的 HTTP 或 HTTPS URL,或单击 HTTP 或 HTTPS URL 中包含用户信息的链接,则可以通过两种方式在 Internet Explorer 中解决此新功能:

    • 不要在 HTTP 或 HTTPS URL 中包含用户信息。
    • 指示用户在键入 HTTP 或 HTTPS URL 时不要包含其用户信息。

    如果网站使用基本身份验证方法,Internet Explorer 会自动提示用户输入用户名和密码。 在某些情况下,用户可以单击对话框中的“ 记住我的密码 ”框,以保存其凭据,以便以后访问该网站。

面向应用程序和网站开发人员的解决方法

  1. 由调用 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 接口的详细信息,请访问以下 Microsoft 网站:

    注意

    使用此解决方法,可以打开 URL 欺骗技术重定向的网站。 将显示整个 URL,包括重定向的位置。

    例如,将显示以下 URL:

    http://www.wingtiptoys.com@www.example.com

    用户仍会到达重定向的网站。 在此示例中,用户到达 http://www.example.com

  2. 由使用凭据进行状态管理的脚本打开的 URL

    如果在脚本代码中包含包含用户信息的 HTTP 或 HTTPS URL,若要管理状态信息,请将脚本代码更改为使用 Cookie 而不是用户信息。 有关如何使用 Cookie 管理状态信息的详细信息,请参阅 HTTP 状态管理机制

    若要查看如何使用 Visual Basic 在 ASP.NET Web 程序中读取和写入 HTTP Cookie 的示例,请参阅 HttpCookie 类

如何禁用新行为或在其他程序中使用它

可以设置注册表值,以便在托管 Web 浏览器控件的其他程序中使用此新行为,或者为 Windows 资源管理器和 Internet Explorer 禁用此新行为。

  1. 托管 Web 浏览器控件的程序如何使用此新的默认行为来处理 HTTP 或 HTTPS URL 中的用户信息

    默认情况下,用于在 HTTP 或 HTTPS URL 中处理用户信息的新默认行为仅适用于 Windows 资源管理器和 Internet Explorer。 若要在托管 Web 浏览器控件的其他程序中使用此新行为,请创建名为 SampleApp.exeDWORD 值,其中 SampleApp.exe 是运行该程序的可执行文件的名称。 在以下注册表项之一中,将 DWORD 值数据设置为 1。

    • 对于程序的所有用户,请在以下注册表项中设置 值:

      HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

    • 仅对于程序的当前用户,请在以下注册表项中设置 值:

      HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

  2. 如何禁用处理 HTTP 或 HTTPS URL 中的用户信息的新默认行为

    若要在 Windows 资源管理器和 Internet Explorer 中禁用新的默认行为,请在以下注册表项之一中创建 iexplore.exeexplorer.exe DWORD 值,并将其值数据设置为 0。

    • 对于程序的所有用户,请在以下注册表项中设置 值:

      HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

    • 仅对于程序的当前用户,请在以下注册表项中设置 值:

      HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

References

有关 HTTP 或 HTTPS URL 的标准 URL 语法的说明,请访问以下 Internet 工程任务组 (IETF) 网站:

Microsoft 提供了第三方联系信息,以便你寻求技术支持。 该联系信息如有更改,恕不另行通知。 Microsoft 不保证此第三方联系信息的准确性。