162

HTML を iframe に読み込みますが、参照されているファイルが https ではなく http を使用している場合、次のエラーが発生します。

[ブロック] {current_pagename} のページで、{referenced_filename} からの安全でないコンテンツが実行されました

これをオフにする方法、または回避する方法はありますか?

iframe にはsrc属性がなく、コンテンツは以下を使用して設定されます。

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

10 に答える 10

31

これが古い投稿であることは知っていますが、別の解決策は cURL を使用することです。たとえば、次のようになります。

リダイレクト.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>

これはアイデアを説明するための最小限の例にすぎません。URL をサニタイズするわけではなく、他の誰かが自分の目的で redirect.php を使用するのを妨げるものでもありません。これらのことを、自分のサイトのコンテキストで検討してください。

ただし、利点は、より柔軟であることです。たとえば、表示する前に、curl された $data の検証を追加して、それが本当に必要なものであることを確認することができます。は。

さらに -- 私は、重要なことを Javascript リダイレクトに頼るのに少しうんざりしています。

乾杯!

于 2015-05-19T06:10:51.177 に答える
8

Google を SSL プロキシとして使用することは現在機能していません。

なんで?

x-frame-optionsGoogle からページを開くと、ヘッダーにフィールド があることがわかります。Google レスポンス ヘッダー

<frame>X-Frame-Options HTTP 応答ヘッダーを使用して、ブラウザが、<iframe>またはでページをレンダリングできるかどうかを示すことができます<object>。サイトはこれを使用して、コンテンツが他のサイトに埋め込まれないようにすることで、クリックジャッキング攻撃を回避できます。

(MDNより引用)

解決策の一つ

以下は、この問題に対する私の回避策です。

コンテンツを AWS S3 にアップロードすると、リソースの https リンクが作成されます。
注意: 誰でも閲覧できるように、html ファイルにパーミッションを設定してください。

その後src、https Web サイトの iframe として使用できます。 AWS

于 2017-03-02T10:17:50.843 に答える