2

(FWIW,我已經發布,以及這個問題到我的博客:http://blog.wolffmyren.com/2011/07/11/ie-protected-mode-ssl/IE保護模式+ SSL登錄=無cookie的非SSL頁面

有誰知道如何解決Internet Explorer保護模式限制而不要求最終用戶將我們的網站添加到「受信任的站點」列表中?

問題是如果我們爲我們的網站啓用SSL登錄,他們只能訪問SSL頁面。 IE會阻止我們的非SSL服務頁面訪問在SSL會話期間創建的cookie,因此我們可以通過SSL(非常昂貴/資源密集型)提供所有服務,或者找到一些方法設置SSL , SSL登錄過程中的cookie。

此MSDN文章(ielowutil.exe與Internet Explorer 8.0有什麼關係?)具有我找到的最相關的信息,但它討論了使用Windows API,並且正在尋找可以解決的問題使用ASP.NET,JavaScript或其他一些交付良好的解決方案來實施。


更新:我的一個朋友共享這些鏈接,希望他們會幫助:

+0

SSL時下已經不是昂貴的,而不是資源密集型的,如果瀏覽器使用保持活動和/或SSL會話恢復(大多數瀏覽器都這樣做)。 –

+0

同意,但通過像Akamai這樣的CDN通過SSL(我們需要做)提供大量內容非常昂貴。 =( –

回答

1

它看起來像IIS是給你的安全在您的HTTPS連接上使用Cookie,這非常明智。這些cookie被設計爲不會泄漏到普通的HTTP連接,因此得到的結果。

您可以創建一個輔助的,非安全的cookie,將一些身份驗證信息傳遞到您網站的HTTP端。 但是,一旦你這樣做了,不要認爲在普通HTTP會話期間完成或發送的任何內容都是由合法認證用戶完成的,如果在某個時候需要返回到HTTPS。將身份驗證令牌從HTTPS傳遞到HTTP可能沒有問題,但不是其他方式。 (當然,你仍然很容易受到普通HTTP的攻擊,但這在你的應用中可能是一個可接受的風險。)

這個問題還有更多關於這個問題的內容(Tomcat的應用與任何Web服務器,包括IIS):Tomcat session management - url rewrite and switching from http to https

1

由於布魯諾暗示,你應該檢查與您的cookie(使用F12開發人員工具或提琴手)設置SECURE屬性。如果是這樣,你會在所有瀏覽器上看到這種行爲。

如果不是,那麼問題很可能是您在可信區域中,http://whatever.com也不在受信任區域中。如果這是你的配置,那麼,保護模式是問題,我已經解釋更徹底這裏的根本原因:

http://blogs.msdn.com/b/ieinternals/archive/2011/03/10/internet-explorer-beware-cookie-sharing-in-cross-zone-scenarios.aspx