由于iframe src导致Chrome上的混合内容警告

时间:2017-09-13 21:04:18

标签: javascript google-chrome iframe https mixed-content

代码中的某处,通过安全网站,使用以下代码段:

var iframe = document.createElement("IFRAME");
iframe.setAttribute("src", "pugpig://onPageReady");
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;

此处设置的iframe src属性实际上是触发回调,但它导致Chrome(版本54)抱怨“混合内容”,因为src属性被解释为https://域上的非https网址,并且Chrome版本不向用户提供简单的选项,允许无论如何加载混合内容(例如地址栏中的盾牌图标)。

由于某些原因,更改Chrome版本/使用其他浏览器/使用--allow-running-insecure-content开关启动chrome不是一个选项,所以我的问题是,有没有办法制作“pugpig:/ / onPageReady“部分被视为https网址?

2 个答案:

答案 0 :(得分:0)

你可以试试这个: -

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />

<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content" />

将其粘贴到<head>...</head>标记中。

HTTP Content-Security-Policy(CSP)block-all-mixed-content指令阻止在使用HTTPS加载页面时使用HTTP加载任何资产。

阻止所有混合内容资源请求,包括主动和被动混合内容。这也适用于<iframe>文档,确保整个页面都是混合内容免费的。

upgrade-insecure-requests之前评估block-all-mixed-content指令,如果设置了前者,后者实际上是无操作。建议设置一个指令或另一个 - 而不是两者。

答案 1 :(得分:-1)

正如我所知道的那样,不,不是。如果有,它可以被认为是一个安全漏洞,它将被修复。

mixed content explaination