在某些版本的 Windows 10 上,通过 Microsoft Edge 更新永久禁用已停用的不支持的 Internet Explorer 11 桌面应用程序。 有关详细信息,请参阅
Internet Explorer 11 桌面应用停用常见问题解答
。
本文旨在通知网站管理员和 IT 专业人员在网站地址中包含用户信息时 Internet Explorer 的行为, (HTTP 或 HTTPS URL) 。
原始产品版本:
Ie
原始 KB 编号:
834489
默认情况下,从安全更新832894发布开始发布的 Internet Explorer 版本不支持使用安全套接字层 (SSL) 或 HTTP 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发布开始发布。
用户的解决方法
由在地址栏中键入 URL 或单击链接的用户打开的 URL
如果用户通常在地址栏中键入包含用户信息的 HTTP 或 HTTPS URL,或单击 HTTP 或 HTTPS 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 网站:
-
InternetConnectA 函数
-
HttpOpenRequestA 函数
-
HttpSendRequestA 函数
有关如何使用
IAuthenticate
接口的详细信息,请访问以下 Microsoft 网站:
-
IAuthenticate 接口
使用此解决方法,可以打开 URL 欺骗技术重定向的网站。 将显示整个 URL,包括重定向的位置。
例如,将显示以下 URL:
http://www.wingtiptoys.com@www.example.com
用户仍会到达重定向的网站。 在此示例中,用户到达
http://www.example.com
。
-
由使用凭据进行状态管理的脚本打开的 URL
如果在脚本代码中包含包含用户信息的 HTTP 或 HTTPS URL,若要管理状态信息,请将脚本代码更改为使用 Cookie 而不是用户信息。 有关如何使用 Cookie 管理状态信息的详细信息,请参阅
HTTP 状态管理机制
。
若要查看如何使用 Visual Basic 在 ASP.NET Web 程序中读取和写入 HTTP Cookie 的示例,请参阅
HttpCookie 类
。
如何禁用新行为或在其他程序中使用它
可以设置注册表值,以便在托管 Web 浏览器控件的其他程序中使用此新行为,或者为 Windows 资源管理器和 Internet Explorer 禁用此新行为。
-
托管 Web 浏览器控件的程序如何使用此新的默认行为来处理 HTTP 或 HTTPS URL 中的用户信息
默认情况下,用于在 HTTP 或 HTTPS URL 中处理用户信息的新默认行为仅适用于 Windows 资源管理器和 Internet Explorer。 若要在托管 Web 浏览器控件的其他程序中使用此新行为,请创建名为
SampleApp.exe
的
DWORD
值,其中
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
-
如何禁用处理 HTTP 或 HTTPS URL 中的用户信息的新默认行为
若要在 Windows 资源管理器和 Internet Explorer 中禁用新的默认行为,请在以下注册表项之一中创建
iexplore.exe
并
explorer.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