security - 在https站点上,如何允许在iframe中使用http内容

我将一些HTML加载到iframe中,但是,当引用的文件使用http而不是https时,我会得到以下错误: [blocked] The page at {current_pagename} ran insecure content from {referenced_filename}

如何关闭它或以任何方式绕过它?

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


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

时间:

当试图在https页面上显示不安全内容时,总是会在大多数浏览器中收到阻止内容的警告。 如果你想嵌入来自 ssl nt behind的其他站点的内容,这一点很棘手。 你可以在浏览器中打开警告或者 blockings,但对于其他访问者则是问题。

一种方法是加载内容服务器端并将图像和其他内容保存到服务器并从https显示。

你也可以尝试使用像 embed.ly 这样的服务,通过它们获取内容。 他们支持在https后面获取内容。

你可以尝试使用PHP或其他服务器端语言来刷新所需的内容,下面是一个PHP示例:

scrapedcontent.php :


<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

index.html:


<iframe src="scrapedcontent.php"></iframe>

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

redirect.php :


<?php
if (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>

这只是一个MINIMAL示例来说明这个想法 - 它没有对URL进行清理,也不会阻止其他人使用redirect.php来达到自己的目的。

然而,好处是它更灵活,

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

cheers!

...