混合内容:Iframe 将 https 调用转换为 http 并且请求被阻止

Posted

技术标签:

【中文标题】混合内容:Iframe 将 https 调用转换为 http 并且请求被阻止【英文标题】:Mixed Content: Iframe converting https call to http and the request gets blocked 【发布时间】:2019-02-13 22:36:55 【问题描述】:

我们有一个网站,通过数字签名为医疗保健提供者提供转诊选项。我们正在升级我们的网站安全政策,以不重定向到第三方网站进行签名。我们不是重定向到第三方网站,而是尝试将第三方网站嵌入我们的网站以进行签名。

现在是技术问题:

我们正在使用 iFrame 嵌入第三方网站。对于需要在此 iFrame 中加载的每个签名,我们都有自定义第三方链接。

我们的网站使用 HTTPS,第三方网站也使用 HTTPS。

即使使用的第三方 URL 在 https 上,我们也会遇到错误

 **The page at 'https://mywebsite.com/' was loaded over HTTPS, but requested an insecure resource 'http://MyThirdPartyIntegratedWebsite' This request has been blocked; the content must be served over HTTPS**

为每个用户形成的 URL 是为他的签名定制的

$scope.detailFrame = 'https://MyThirdPartyIntegratedWebsite/userID=123'

也将第三方网站列入白名单。

$sceDelegateProvider.resourceUrlWhitelist([
    // Allow same origin resource loads.
    'self',
    // Allow loading from our assets domain.  Notice the difference between * and **.
    'https://MyThirdPartyIntegratedWebsite/**'

    ]);

如何避免iFrame不安全地调用第三方网站?

【问题讨论】:

问:“如何避免iFrame不安全地调用第三方网站?”答:不能。如果如您所说,“我们正在尝试将第三方网站嵌入到我们的网站中以进行签名……我们正在使用 iFrame 嵌入第三方网站”,那么您无法控制第三方嵌入的资源 -派对网站尝试加载。因此,如果该第三方网站尝试加载不安全的 http 资源,您将无法避免。 我了解无法控制内部重定向。就我而言,在初次通话之前,我收到了混合内容错误。它自己的初始请求被转换为 http 调用。 【参考方案1】:

实际上是来自第三方网站的内部重定向导致了问题。我们与他们打了电话来解决这个问题。谢谢sideshowba

【讨论】:

以上是关于混合内容:Iframe 将 https 调用转换为 http 并且请求被阻止的主要内容,如果未能解决你的问题,请参考以下文章

Mixed Content混合内容错误 Iframe Http页面无法访问

Chrome 和 IE 中的混合内容

在动态 iframe 中注入表单时 IE 中的混合内容问题

将 iframe 代码转换为 jquery 代码

将包含混合字体的word文档转换为unicode

是否可以将 iframe 转换为 html? [关闭]