Internet Explorer 不支援網站位址中的使用者名稱和密碼(HTTP 或 HTTPS URL)
警告
已淘汰、不受支援的 Internet Explorer 11 傳統型應用程式已於特定 Windows 10 版本透過 Microsoft Edge 更新永久停用。 如需詳細資訊,請參閱 Internet Explorer 11 傳統型應用程式淘汰常見問題集 (英文)。
本文旨在通知網站管理員和 IT 專業人員在網站位址 (HTTP 或 HTTPS URL) 中包含使用者資訊時,Internet Explorer 的行為。
原始產品版本: Internet Explorer
原始 KB 編號: 834489
摘要
根據預設,從安全性更新發行開始發行的 Internet Explorer 版本832894不支援在 HTTP 和 HTTP 中使用安全套接字層 (SSL) 或 HTTPS URL 來處理使用者名稱和密碼。 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網站:
如需如何使用 IAuthenticate 介面的詳細資訊,請流覽下列Microsoft網站:
注意
透過此因應措施,您可以開啟URL詐騙技術重新導向的網站。 整個 URL 隨即出現,包括重新導向的位置。
例如,會出現下列 URL:
http://www.wingtiptoys.com@www.example.com
使用者仍會抵達重新導向的網站。 在這裡範例中,使用者會
http://www.example.com
抵達 。- 使用 InternetSetOption 函式,並包含下列選項旗標:
腳本開啟的 URL,該腳本會使用認證來管理狀態
如果您在文稿程式代碼中包含包含使用者資訊的 HTTP 或 HTTPS URL,若要管理狀態資訊,請將腳本程式代碼變更為使用 Cookie,而不是使用者資訊。 如需如何使用 Cookie 來管理狀態資訊的詳細資訊,請參閱 HTTP 狀態管理機制。
若要查看如何使用 Visual Basic 在 ASP.NET Web 程式中讀取和寫入 HTTP Cookie 的範例,請參閱 HttpCookie 類別。
如何停用新行為,或在其他程式中使用它
您可以將登錄值設定為在其他裝載網頁瀏覽器控件的程式中使用這個新行為,或停用 Windows Explorer 和 Internet Explorer 的這個新行為。
裝載網頁瀏覽器控制元件的程式如何使用這個新的預設行為來處理 HTTP 或 HTTPS URL 中的用戶資訊
根據預設,這個處理 HTTP 或 HTTPS URL 中使用者資訊的新預設行為僅適用於 Windows Explorer 和 Internet Explorer。 若要在其他裝載網頁瀏覽器控制件的程式中使用這個新行為,請建立名為 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 Explorer 和 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
參考資料
如需 HTTP 或 HTTPS URL 標準 URL 語法的說明,請瀏覽下列因特網工程工作組 (IETF) 網站:
Microsoft 提供第三方連絡資訊,協助您尋找技術支援。 此連絡資訊可能會變更而不另行通知。 Microsoft 不保證此第三方連絡資訊的正確性。