2010-08-27 69 views
0

我想我可能知道這個問題的答案,但我實際上正在尋找一些關於爲什麼發生這種情況的微軟聲明的確鑿證據/鏈接。爲什麼IE不允許頁面使用框架(多個域)登錄?

我有一個域名「www.mycompany.com」,它是HTTP。此頁面包含HTML,並將iFrame重定向到「application.anothercompany.com」,即HTTPS。位於「application.anothercompany.com」上的頁面僅包含頁面上的用戶名和密碼框以及登錄按鈕。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
    "http://www.w3.org/TR/html4/frameset.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<meta name="Author" content=""> 
<meta name="ROBOTS" content="ALL"> 
<meta name="description" content=""> 
<meta name="keywords" content=""> 
<title>My Company Name</title> 

</head> 
<frameset cols="100%,*"> 
<frame frameborder="0" src="https://application.anothercompany.com/" > 
<noframes> 
<body> 
Frames not supported. 
</body> 
</noframes> 
</frameset> 
</html> 

導航到「https://application.anothercompany.com」時,我可以在任何瀏覽器上成功登錄。

訪問「http://www.mycompany.com」時,我無法登錄到使用Internet Explorer在iFrame中顯示的其他網站。然而,我可以用Safari和Firefox來做到這一點。

對我而言,我認爲這是Internet Explorer的一項功能,用於阻止網絡釣魚攻擊 - 只要用戶知道他們輸入的信息是「http://www.mycompany.com」而不是「https://application.anothercompany.com」。如果這是一項安全功能,那麼很好 - 我可以忍受這一點。

這一切聽起來是否正確 - 或者是否有解決方法?

要添加更多信息,我嘗試將「www.mycompany.com」添加到瀏覽器上的受信任站點,但這並未糾正問題,並且在Internet Explorer中禁用「保護模式」也未能更正問題。

這個問題似乎出現在IE,IE7和IE8中。

我發現你可以通過打開一個新標籤頁,導航到「https://application.anothercompany.com」並登錄,然後返回到「http://www.mycompany.com」網站,然後成功登錄!雖然關閉並重新啓動IE重置所有這一切。

感謝 斯圖

回答

0

這被稱爲跨域請求或XDR。默認情況下,它在IE7中被阻止。

這裏的要素上MS文檔: http://msdn.microsoft.com/en-us/library/ms537505(VS.85).aspx#xdomain

這裏有點關於這個問題(好)雅虎的文檔,關於JavaScript的: http://developer.yahoo.com/javascript/howto-proxy.html

據我所知,有不是IE7中此安全功能的解決方法 - 您只能通過更改瀏覽器中的安全設置來執行XDR請求。

+0

謝謝你,如預期的那樣...... Grrr – 2010-08-30 14:52:33

0

正如你指出,這是一個security feature。用戶認爲他們在一個域中,並且您「祕密」地在另一個域使用他們的憑據。 (即使你不想成爲黑幕...... IE瀏覽器安全並假設你可能是網絡釣魚或類似的)

由於一個頁面在HTTP上而另一個在HTTPS上,你的用戶可能會得到一個「混合內容「安全警告對話框。 (域名:in which the default buttons switch between versions of IE