技术

什么是混合内容?为什么它会削弱 HTTPS 的效果?

如果页面的某些部分仍在悄悄通过旧的、不安全的连接加载,那么开启 HTTPS 只完成了一半的工作。

这是什么

一旦页面通过 HTTPS 安全提供服务,页面上加载的每一样东西——每一张图片、每一段脚本、每一份样式表、每一个嵌入视频——理应也都通过 HTTPS 加载。「混合内容」指的是主页面是安全的,但其中一个或多个单独元素仍在通过旧的、未加密的 http:// 加载的情况,这通常是因为一个在网站迁移到 HTTPS 时从未更新过的旧图片链接或嵌入代码。

之所以叫「混合」,是因为页面最终同时提供了安全和不安全两种连接的混合,这从很大程度上抵消了当初切换到 HTTPS 的意义。

为什么重要

浏览器把混合内容视为真正的安全隐患,而不只是外观问题——它们通常会悄悄阻止不安全的资源加载(于是一张图片或一段脚本就这么不显示了),或者在地址栏显示一个可见的警告图标,抵消掉那把锁形图标本该带来的信任感。在注重安全的访客眼中,这两种结果都比根本没有 HTTPS 更糟,因为它看起来像是某个地方出了故障,或配置只做了一半。

由于混合内容通常只是页面代码中被忽略的一两个链接造成的(一个旧的图片 URL、一个第三方嵌入),这也是这份清单中一旦被发现就相对容易彻底解决的问题之一。

如何解决

  1. 在浏览器中打开你的页面,检查开发者控制台(通常用 F12 打开,或右键点击 → 检查 → 控制台标签页),寻找提到「混合内容」或「不安全内容」的警告。
  2. 每条警告都会指出具体是哪个资源(图片、脚本或样式表的 URL)仍在通过 http:// 加载。
  3. 把每一个这样的 URL 改成以 https:// 开头——即便你页面上的具体链接没有更新,大多数资源实际上都可以通过 HTTPS 访问。
  4. 对于只提供 http:// 版本的第三方嵌入(视频、组件、广告),检查该服务商是否提供 HTTPS 嵌入代码作为替代。
  5. 重新加载页面并再次检查控制台,确认警告已经消失。

看看你自己的网站是否也有这个问题

Launch Readiness 会在几秒内检测你的网站是否存在此问题以及其他约 50 个上线前的问题——免费,无需注册。

立即免费检测