如果没有一些严重的黑客攻击,基本上没有办法解决这个问题。
HTTPS 表示该站点是安全的,并向用户显示一个漂亮的绿色挂锁以确认这一点。
访问者知道他们正在访问的网站是 URL 中的那个,并且他们正在显示的内容是网站所有者提供的内容并且没有以任何方式更改。他们也知道他们正在浏览的内容是保密的。大多数用户是否真正理解这一点并不重要 - https 意味着安全。
如果页面的一部分是通过 http 加载的,那么这不再是正确的,因此不会显示绿色挂锁 - 这是正确的。
现在有不同类型的混合内容:
图像是所谓的被动混合内容。由于它通过 http 传递,它是未加密的,因此可以在您的访问者不知情的情况下替换为另一个图像。此外,用户要求窃听者可以看到特定图像,这意味着他们不再私下浏览。这可能会也可能不会那么糟糕,具体取决于图像是什么。例如,该图像可能是用于构建绝密项目的示意图,而将其替换为另一个可能会危及该项目。并且还可以让其他人知道您正在考虑构建这个绝密项目。
因此,被动混合内容可能很糟糕,但主动混合内容可能要糟糕得多。例如,一个 JavaScript 请求可能会受到干扰,因此它可以用来更改整个页面或记录密码或其他一百万个坏事。
但是,一旦您开始允许一些混合内容的路径,您只是在向用户询问复杂和令人困惑的消息。最好不要区分它们,只说:如果你想要你的绿色挂锁,不要混合内容。浏览器开始严格执行这一点,当时它们只执行主动混合内容,我认为这是一件好事。
那么你能做些什么来解决你的问题呢?
那么您可以在您的网站上托管图像,而不是链接到其他网站。无论如何,这是一件好事,因为其他站点可能不喜欢您使用他们的带宽来提供图像,而且您也无法控制他们是否更改了图像。看看当赫芬顿邮报因这种热链接而惹恼一位艺术家时,这种事情是如何发生的。
或者,您可以使用代理完成复杂的路由,该代理从 http 获取资源并通过 https 将其传递到您的站点。但是有些人会说这有点作弊(再次想象一下上面的内容被窃听者更改的场景),当有更简单的选择时(主要不要在 https 上使用 http 资源),这听起来也很麻烦页)。
您还可以在您的站点上实施内容安全策略,以将不安全的 http 请求升级为 https。但这仅在现代浏览器上受支持,并且在此特定示例中无济于事(因为其他站点上的 https 已损坏,因此无法加载图像),但至少会停止破坏绿色挂锁,并且还可以帮助他们处理其他图像添加可通过 https 和 http 使用的内容,并且已放置了错误的链接。虽然有点软糖。
或者只是停止使用来自仅限 http 的站点的资源。特别是那些 https 证书过期的人。无论如何,听起来像一个狡猾的网站。