为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

慕粉4167745 2019-07-10 15:15:56

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

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

[阻止]{Current_Pagename}处的页面从{Reference_filename}运行不安全的内容。

有什么办法可以关掉它或者有什么办法可以绕过它吗?

IFRAME没有src属性和内容是使用以下方法设置的:

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


查看完整描述

3 回答

?
慕虎7371278

注:虽然这个解决方案在2014年编写时可能在某些浏览器中有效,但它已不再起作用。导航或重定向到iframe现代浏览器不允许在HTTPS页面中嵌入,即使框架是从HTTPS URL开始的。

我创造的最好的解决方案就是简单地使用Google作为SSL代理.。

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

测试并在Firefox中工作。

其他方法:

  • 使用诸如Embed.ly这样的第三方(但它实际上只对众所周知的HTTPAPI有好处)。

  • 在您控制的https页面上创建您自己的重定向脚本(相对链接页面上的一个简单的javascript重定向应该可以做到这一点。比如:(你可以使用任何语言/方法)

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

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

    document.location.href ="http://thenonsslsite.com";

  • 或者,您可以添加一个RSS提要,或者编写一些阅读器/解析器来读取http站点并在https站点中显示它。

  • 您还可以/应该建议http站点所有者创建SSL连接。如果没有其他原因它增加了SEO.

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

真正的问题是,在https站点中拥有http元素代表了一个安全问题。没有完全合乎道德的方法来规避这种安全风险,所以以上只是当前的工作。

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


查看完整回答
反对 回复 2019-07-10
?
呼唤远方

我知道这是一个旧帖子,但另一个解决方案是使用curl,例如:

redirect.php:

<?phpif (isset($_GET['url'])) {
    $url = $_GET['url'];
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    echo $data;}

然后在你的iframe标签中,类似于:

<iframe src="/redirect.php?url=http://www.example.com/"></iframe>

这只是一个很小的例子来说明这个想法-它不会净化URL,也不会阻止其他人为自己的目的使用redirect.php。在你自己的网站上考虑这些事情。

但好处是,它更灵活。例如,您可以添加对curl‘d$数据的一些验证,以确保在显示它之前它确实是您想要的-例如,测试以确保它不是404,并且有您自己准备好的替代内容(如果是的话)。

另外-我有点厌倦了依赖Javascript重定向来做任何重要的事情。

干杯!


查看完整回答
反对 回复 2019-07-10

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信