小编典典

如何在https网站的iframe中允许http内容

html

我将一些HTML加载到iframe中,但是当引用的文件使用http而不是https时,出现以下错误:

[已屏蔽] {current_pagename}中的页面运行了来自{referenced_filename}的不安全内容

有什么办法可以关闭它或解决它吗?

iframe没有src属性,其内容使用以下方法设置:

frame.open();
frame.write(html);
frame.close();

阅读 3340

收藏
2020-05-10

共1个答案

小编典典

注意:虽然该解决方案在2014年编写时可能已在某些浏览器中运行,但不再起作用。iframe现代浏览器不允许导航或重定向到HTTPS页面中嵌入的HTTP URL ,即使框架以HTTPS URL开始也是如此。

我创建的最好的解决方案是简单地使用google作为ssl代理…

https://www.google.com/search?q=%http://yourhttpsite.com&btnI=Im+Feeling+Lucky

经过测试并在Firefox中工作。

其他方法:

  • 使用诸如embed.ly之类的第三方(但这实际上仅对众所周知的http API有用)。

  • 在您控制的https页面上创建自己的重定向脚本(在相对链接的页面上执行简单的javascript重定向就可以解决问题。例如:(您可以使用任何langauge /方法)

https://example.com 有一个iframe链接到…

https://example.com/utilities/redirect.html 其中有一个简单的js重定向脚本,例如…

document.location.href ="http://thenonsslsite.com";
  • 或者,您可以添加RSS feed或编写一些阅读器/解析器以读取http站点并将其显示在https站点内。

  • 您也可以/应该向http站点所有者推荐他们创建ssl连接。如果没有其他原因,它会增加seo。

除非您可以让http网站所有者创建ssl证书,否则最安全和永久的解决方案是创建一个RSS feed,以获取所需的内容(假定您实际上并没有在http网站上“做任何事”-即说不登录任何系统)。

真正的问题是,在https站点内包含http元素表示安全问题。没有完全消除这种安全风险的方法,因此上述内容只是当前的解决方法。

请注意,您可以在大多数浏览器(您自己,而不是其他浏览器)中禁用此安全措施。还要注意,随着时间的流逝,这些“黑客”可能会过时。

2020-05-10