IE保护模式+ SSL登录=非SSL页面没有cookie

时间:2011-07-12 01:35:22

标签: internet-explorer authentication cookies ssl protected-mode

(FWIW,我也将这个问题发布到我的博客上:http://blog.wolffmyren.com/2011/07/11/ie-protected-mode-ssl/

有没有人知道如何解决Internet Explorer保护模式限制而无需最终用户将我们的网站添加到“可信站点”列表?

问题是,如果我们为网站启用SSL登录,他们只能访问SSL页面。 IE阻止我们的非SSL服务页面访问在SSL会话期间创建的cookie,因此我们可以通过SSL(非常昂贵/资源密集)提供所有服务,或者找到一些方法来设置SSL 和< / em>登录过程中的非SSL cookie。

这篇MSDN文章(ielowutil.exe与Internet Explorer 8.0有什么关系?)具有我发现的最相关的信息,但它讨论了使用Windows API,我正在寻找一个我可以实现的解决方案使用ASP.NET,JavaScript或其他一些交付良好的解决方案。


更新:我的一位朋友分享了这些链接,希望他们能帮忙:

2 个答案:

答案 0 :(得分: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 :(得分:1)

正如Bruno所说,您应该检查您的Cookie中是否设置了SECURE属性(使用F12开发人员工具或Fiddler)。如果是,您将在所有浏览器上看到此行为。

如果没有,则问题很可能是您在受信任区域中,而http://whatever.com也不在受信任区域中。如果这是你的配置,那么是,保护模式是问题的根本原因,我在这里已经解释得更彻底了:

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