IE和混合内容

时间:2015-03-16 13:33:32

标签: internet-explorer web requirejs

我正在处理一个我们一直在努力的公共网站的问题。

上下文:
该网站通过HTTP提供,每个页面都包含一个iframe,通过HTTPS提供。该网站还使用require.js作为模块加载器。

问题:
虽然&#34;正常&#34; (理解包含在HTML中)脚本在HTTP上加载得很好,require.js加载的动态脚本在IE上抛出SEC7111: HTTPS security is compromised by <HTTP file path>,无论版本是什么。

结果,向用户显示以下消息:
IE information message

是的,用户可以点击Show all content按钮强制加载JS文件,但体验很糟糕。

备注:

  • 抛出错误的脚本与主页相关联,而不是iframe
  • 问题显然与安全iframe有关,因为如果它从页面中删除,则错误消失
  • Firefox和Chrome上都没有此问题

问题:

  • 有没有人知道为什么IE抱怨通过HTTP服务的JS文件也通过HTTP提供服务?
  • 是否有人有解决方案,因此未向用户显示消息并且所有脚本都已加载而用户未执行任何进一步操作?

1 个答案:

答案 0 :(得分:0)

IE团队在处理混合内容时指定了一个“修复”技巧:

  

使用protocol-relative指定页面资源的来源   超链接,格式为“//example.com/image.gif”。当用户   访问包含此类引用的安全页面(例如   https://example.com/page.htm)生成的URI将被评估为   https://example.com/image.gif。另一方面,如果用户访问   使用HTTP的同一页面,生成的URI将被评估为   http://example.com/image.gif。这样,网站开发人员就可以轻松实现   构建适用于HTTP或HTTPS的页面而不引入   混合内容漏洞。

更多细节可以在这里找到:

http://blogs.msdn.com/b/ie/archive/2011/06/23/internet-explorer-9-security-part-4-protecting-consumers-from-malicious-mixed-content.aspx

http://blogs.msdn.com/b/ieinternals/archive/2009/06/22/https-mixed-content-in-ie8.aspx