我正在处理一个我们一直在努力的公共网站的问题。
上下文:
该网站通过HTTP提供,每个页面都包含一个iframe
,通过HTTPS提供。该网站还使用require.js作为模块加载器。
问题:
虽然&#34;正常&#34; (理解包含在HTML中)脚本在HTTP上加载得很好,require.js加载的动态脚本在IE上抛出SEC7111: HTTPS security is compromised by <HTTP file path>
,无论版本是什么。
结果,向用户显示以下消息:
是的,用户可以点击Show all content
按钮强制加载JS文件,但体验很糟糕。
备注:
iframe
iframe
有关,因为如果它从页面中删除,则错误消失问题:
答案 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/ieinternals/archive/2009/06/22/https-mixed-content-in-ie8.aspx