混合内容检查器

要扫描的 HTML

检测在 HTTPS 页面中加载的 http:// 资源。

下一步

将网站迁移至HTTPS协议后,仍指向http://...的残留<img><script><link><iframe>标签会破坏绿色锁形图标显示效果;在现代浏览器中,这些标签往往无法完全加载。输入URL后,该检测工具可加载页面并检查所有子资源(图像、样式表、脚本、字体、iframe、视频、音频),同时列出所有通过普通HTTP传输的内容,以便用户在看到“安全性不完全”警告前及时修复这些问题。

扫描工作原理

  1. 1

    输入网址

    HTTPS URL。扫描器仅执行一次重定向操作。

  2. 2

    页面已获取

    HTML 会针对每个子资源引用进行解析。

  3. 3

    每份参考文献均经过分类处理。

    HTTPS、HTTP 或协议相对路径(`//cdn...`)。

  4. 4

    按类型分组的报告

    主动内容与被动内容,按严重程度排序。

主动与被动混合内容

浏览器对这两类内容的处理方式不同:

  • 主动混合内容(脚本、iframe、样式表、XHR/fetch、工作线程、WebSocket);现代浏览器会直接阻止此类内容。包括:<script><link rel="stylesheet"><iframe>fetch()XMLHttpRequestimportScripts()
  • 被动混合内容(图像、视频、音频海报)。已加载但被标记,锁图标会显示,网址栏也会出现警告提示。包括:<img><audio><video>以及表单action的目标文件。

为何这很重要

  • **信任。**损坏的锁形图标会向注意到它的用户明确传达“本网站不安全”。
  • 功能特性。 阻止活跃内容后,脚本无法运行、样式表无法生效,页面显示异常。
  • 搜索引擎优化(SEO):谷歌更青睐采用 HTTPS 协议的网页;HTTPS 协议失效会间接影响网站排名。
  • 合规性。 PCI DSS 及众多其他合规框架均要求交易页面必须使用不含混合内容的 HTTPS 协议。

常见来源

来源 常见修复方法
通过 HTTP 进行传统 CDN 将域名切换为 HTTPS CDN
嵌入式 YouTube/Vimeo 旧嵌入代码 将嵌入内容更新至当前版本
广告网络脚本 URL 使用 HTTPS 版本(已支持多年)
第三方字体、地图 http://fonts.googleapis.com 替换为 https://
社交按钮小部件 使用当前小部件代码
用户生成的图像 URL 保存时重新生成;显示时通过代理加载
博客文章中的硬编码 URL 数据库批量查找与替换

修复策略

  1. 基于协议的URL(//cdn.example.com/a.js:使用当前页面所使用的通信协议进行加载。适用于大多数CDN网络,但已被弃用,建议明确使用https://...
  2. 在源代码中重写。 更新模板和内容,使用 https://;使用正则表达式 http://(?!localhost) 扫描代码库。
  3. 内容安全策略升级。 Content-Security-Policy: upgrade-insecure-requests 指令浏览器自动将 HTTP 资源 URL 重写为 HTTPS,特别适用于无法对每个 URL 进行审计的网站。
  4. <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> 的内联等效表达式。
  5. 若上游服务器确实没有HTTPS接口(目前较为罕见),则通过您的HTTPS源服务器提供仅支持HTTP的代理资源

检查器发现的内容

  • <img><script><link><iframe><video><audio><source> 中引用的所有外部 URL。
  • 表单 action 的属性。
  • <style> 块中引用了 url(...) 中的内联 CSS 代码。
  • 不会扫描经JavaScript注入的资源,这些资源是在运行时添加的,需要浏览器端进行检测(Chrome开发工具中的“问题”面板可识别此类情况)。

常见问题

部分情况下如此。upgrade-insecure-requests CSP头或元标签会指示浏览器自动将HTTP子资源URL重写为HTTPS格式。该机制仅在服务器支持HTTPS时生效;若上游协议仅为HTTP,则重写操作将失败。

不。仅显示静态HTML中引用的资源;在运行时创建<img>元素的脚本不会显示;Chrome开发工具的问题面板可在浏览器内检测到这些情况。

这些标签在HTTPS页面上支持混合内容(继承了HTTPS的安全机制),但在仅使用HTTP的内部工具或存档页面中会失效,且已被弃用。建议使用显式https://标签。

浏览器缓存。可使用强制刷新(Ctrl+Shift+R / Cmd+Shift+R)或在无痕模式窗口中测试以确认修复效果。CSP报告及控制台警告会显示当前状态。

服务器端的获取器会提取该页面以供分析。URL本身仅在请求中存储,不会被额外保存。

相关工具

此工具还提供其他语言版本