我将一些HTML加载到iframe中,但是当引用的文件使用http而不是https时,出现以下错误:
[已屏蔽] {current_pagename}中的页面运行了来自{referenced_filename}的不安全内容
有什么办法可以关闭它或解决它吗?
iframe没有src属性,其内容使用以下方法设置:
src
frame.open(); frame.write(html); frame.close();
注意:虽然该解决方案在2014年编写时可能已在某些浏览器中运行,但不再起作用。iframe现代浏览器不允许导航或重定向到HTTPS页面中嵌入的HTTP URL ,即使框架以HTTPS URL开始也是如此。
iframe
我创建的最好的解决方案是简单地使用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重定向脚本,例如…
https://example.com/utilities/redirect.html
document.location.href ="http://thenonsslsite.com";
或者,您可以添加RSS feed或编写一些阅读器/解析器以读取http站点并将其显示在https站点内。
您也可以/应该向http站点所有者推荐他们创建ssl连接。如果没有其他原因,它会增加seo。
除非您可以让http网站所有者创建ssl证书,否则最安全和永久的解决方案是创建一个RSS feed,以获取所需的内容(假定您实际上并没有在http网站上“做任何事”-即说不登录任何系统)。
真正的问题是,在https站点内包含http元素表示安全问题。没有完全消除这种安全风险的方法,因此上述内容只是当前的解决方法。
请注意,您可以在大多数浏览器(您自己,而不是其他浏览器)中禁用此安全措施。还要注意,随着时间的流逝,这些“黑客”可能会过时。