Chrome和IE中的混合内容

cos*_*set 30 security https iframe google-chrome mixed-content

在我启用HTTPS的网站中,我添加了一个iframe,该iframe应该显示来自我的其他网站的内容,但它不能在https下运行.

<iframe  src="//myothersite.com"></iframe>
Run Code Online (Sandbox Code Playgroud)

在Firefox最新版本中,一切都很好.

在Chrome中,iframe未加载,在控制台中我看到了这两个错误

Mixed Content: The page at 'https://mysite' was loaded over HTTPS, but requested an insecure resource 'http://myothersite.com'. 
This request has been blocked; the content must be served over HTTPS.
Failed to load resource: net::ERR_CACHE_MISS
Run Code Online (Sandbox Code Playgroud)

在IE内容加载不正确,我看到一个警报消息; 如果我单击"允许不安全内容",则会正确加载.

问题是:我如何在Firefox中使用IE和Chrome(加载混合内容而不发出任何警报)?

注意:我没有更改任何浏览器设置.

vto*_*ola 17

实际上Firefox已经开始做同样的事情:如何修复阻止混合内容的网站

这说得通.如果用户使用HTTPS访问某个站点,则希望获得安全的体验,并且他可能不知道在不安全的连接下加载的部分应用程序.这就是浏览器阻止这种不一致的原因.

您需要在myothersite.com上提供HTTPS.


Jis*_*m82 10

显然,最好不要使用混合内容来防止MITM攻击,但对于那些无法控制url的人来说,这应该可以解决问题:

src ="http://linkToUrl.com"更改为

SRC = "// linkToUrl.com/script.js"

  • 这不会解决`script.js`发送的子http请求的问题.添加这个`<meta http-equiv ="Content-Security-Policy"content ="upgrade-insecure-requests">`. (8认同)