【问题标题】:load https site from a frame从框架加载 https 站点
【发布时间】:2016-04-17 06:03:52
【问题描述】:

考虑一下:

<html>
<frameset cols="50%,50%" frameborder=no border=no framespacing=no>
<frame src="http://site1.com">
<frame src="https://site2.com">
</frameset>
</html>

我已将此文件保存到 myCompareFrames.html 并尝试使用 google-chrome 打开它。

这样做的原因是有两个相邻的框架,所以我可以比较一些结果(而不是打开两个页面 LOL)

但是它只打开 httpNOT https(注意:没有一个网站是本地的)

所以我的问题是:

  • 为什么它可以加载http而不是https?
  • 这种方式有简单的方法吗?

注意:

如果没有简单的方法,我会很高兴解释为什么会发生这种情况,因为我很好奇,但我不会花几个小时在这样的愚蠢问题上。

【问题讨论】:

  • 如果这是一个安全限制,应该在浏览器的控制台中提到它。
  • 你不能在 http 协议中从 https 加载资源,这是一个安全限制。它在 AJAX 调用、脚本和 css 包含等中的工作方式相同。您的解决方案是在协议 https 中访问带有框架集的页面并在同一协议中加载所有内容。
  • 你正在使用 iframe 将 "" 更改为 "
  • 谢谢各位,我认为这可能是为了安全,但我不知道这怎么可能是一个安全问题......

标签: html frame


【解决方案1】:

对于本地文件

<html>
<frameset cols="50%,50%" frameborder=no border=no framespacing=no>
  <frame src="http://spiegel.de">
  <frame src="https://www.wikipedia.org">
</frameset>
</html>

Firefox 开发者版加载了这两个页面。

但是,例如,使用 stackoverflow.com 而不是 spiegel.de 时会出现问题。

因此,它可能取决于站点。作为一种猜测,可能是 SO 中肯定存在的 https 元素与 mixed-content protection (IE 和 Chrome 也存在)一起导致加载失败。 Web 控制台未显示任何错误。

至于为什么这是一个安全问题,请参阅 f.ex。 https://security.stackexchange.com/questions/38317/specific-risks-of-embedding-an-https-iframe-in-an-http-page

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    相关资源
    最近更新 更多