Internet explorer 在HTTPS和HTTP之间传递数据

Internet explorer 在HTTPS和HTTP之间传递数据,internet-explorer,iframe,cross-domain,Internet Explorer,Iframe,Cross Domain,我最近遇到了一个问题,涉及将数据(少量)从页面传递到iframe 当两个页面都是http时,这很简单——我使用查询字符串将信息传递给iframe,并使用javascript向进程完成的父页面发出信号 当iframe位置更改为https时,通过javascript访问父级时出现问题,因为https和http被视为不同的域-通过在iframe中使用重定向到普通页面并从那里调用javascript解决了这个问题 它在IE和FF上都工作得很好,但在测试中发现了一种特殊的行为。 只有在IE中,在用户访问h

我最近遇到了一个问题,涉及将数据(少量)从页面传递到iframe

当两个页面都是http时,这很简单——我使用查询字符串将信息传递给iframe,并使用javascript向进程完成的父页面发出信号

当iframe位置更改为https时,通过javascript访问父级时出现问题,因为https和http被视为不同的域-通过在iframe中使用重定向到普通页面并从那里调用javascript解决了这个问题

它在IE和FF上都工作得很好,但在测试中发现了一种特殊的行为。 只有在IE中,在用户访问https域中的页面、转到http页面并使用iframe的场景中,重定向后脚本仍然无法运行,从而出现一个神秘的异常-TypeError:访问被拒绝

我没有找到从父页面检查iframe当前位置的方法,我能看到的唯一解决方案是一个粗糙的黑客攻击,涉及父http apge的ajax轮询

尽管我建议改变页面设计,或者在两边都使用https,但我仍然需要找到一个解决方案,因为其他网站显然是通过这种方式成功的。我无法使用Firebug复制此行为,因为这些站点不使用FF,并且我无法获得任何结果


我很想听听关于解决这个问题的建议,但如果不可行,我想确定这一点。

去年在CCC大会25C3上,有一个关于网页安全问题的演讲,有一个非常明确的信息:不要在同一页上混合使用http和https,这就带来了中间人攻击的不可接受的风险

用户无法知道页面的哪个部分是http,哪个部分是https。将两者合并在同一页上是一种不当行为,应该这样对待


视频是

您遇到的是同一来源政策,您说的不同协议将意味着来源不同,跨帧访问将不起作用,这是正确的

如果您发现了跨源访问的某些情况,那么这是该浏览器中的一个错误,您应该向浏览器制造商报告

cookie在HTTP和HTTPS之间流动,如果它们没有被标记为HTTPS,这可能是一种可以考虑的方法。 IE-6,7,8的版本-不确定服务包\次要编号。Firefox是3.5

应用程序的结构-

https://mydomain/SomeRandomPage

http://mydomain/PageWithInnerIframe

https://mydomain/PageWithIframeContent
重定向-HTTP 302到

http://mydomain/UnSecuredIframeContentPage
哪个有

<script ...>
parent.document ... 
</script>
。除此之外,它工作(逻辑上)很好-iframe已经指向一个HTTP页面

斯蒂芬·艾格蒙特
谢谢,我将介绍此信息以及其他解决方案的示例。

iframe和父页面上的document.domain hack如何?

IE测试版本?更清楚地描述我们如何重现这个问题会有所帮助。你能提供一个小的例子吗?如果你被炒鱿鱼并被赶出IEEE,那么ACMCookies就帮不了你了——要求的是一个响应迅速的AJAX-y页面。iframe中的事件需要传递到父页面。iframe是老式的ajax。如果您想要AJAXy,那么只需实现Ajax并使用ut即可
 https://mydomain/SomeRandomPage