【问题标题】:How to display insecure content on a secure page如何在安全页面上显示不安全内容
【发布时间】:2017-12-17 18:46:32
【问题描述】:

我想使用只能通过 HTTP 请求获得的翻书 iframe 资源 -
但我的页面是通过 HTTPS 加载的。 Chrome 不会显示混合内容。

我无法包含来自其他主机的资源,也无法直接在网站上下载和托管内容。

还有其他选择吗?

【问题讨论】:

    标签: http security iframe https


    【解决方案1】:

    您可以在您的服务器上创建文件 fetchdata.php 并尝试使用以下代码 (cURL)

    <?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="/fetchdata.php?url=http://www.flipbook-url.com/"></iframe>
    

    您还可以在同一页面中为 404 和其他错误添加更多验证。

    【讨论】:

    • 这不安全。有人可以使用您的 fetchdata 端加载他想要的任何内容和功能。例如,这可能被用来窃取 cookie/会话等...(在您的域下呈现任意外部 url)
    • 暂时可能没问题,但这只是返回一个无论如何都找不到的页面。是否可以将此页面配置为使用 SSL 加载的例外?
    • @ConnorStansfield 您只能通过 HTTP 提供特定页面,这意味着整个网页将是 HTTP,而不仅仅是 iframe。这只会导致您的页面在该 URL 的地址栏中出现“不安全”警告。如果您的站点可通过 HTTP 和 HTTPS 访问,这将起作用。这也是一个更好的解决方案,而不是试图欺骗浏览器以为它加载了安全内容,而实际上它并没有。
    猜你喜欢
    • 2018-07-23
    • 2020-05-30
    • 2013-04-27
    • 2011-06-11
    • 2012-06-09
    • 2013-07-13
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    相关资源
    最近更新 更多