常见漏洞验证121 条

混合内容检查

HTTPS 页面加载 HTTP 资源会造成混合内容:主动内容(脚本/iframe)被浏览器阻断,被动内容(图片)降低安全保证。

混合内容分两类

HTTPS 页面加载 HTTP 资源就是混合内容。浏览器把脚本、样式、iframe、XHR 这类能改变页面行为的资源称为主动混合内容,默认直接阻断;图片、音视频等被动混合内容通常只降级为警告,但仍会削弱整体的安全保证,攻击者可以替换这些资源内容。检查在浏览器控制台与页面资源清单两侧同时进行。

基本信息

适用平台所有 HTTPS 站点,含内嵌第三方资源的前端
分类主动混合内容(脚本/样式/iframe/XHR,被阻断)、被动混合内容(图片/音视频,警告)
检查方式浏览器开发者工具控制台与网络面板
修复方向统一资源协议为 HTTPS,配合 HSTS 与升级策略

典型使用场景

  • 全站改造 HTTPS 后的资源残留排查
  • 加载第三方内容(统计、地图、字体)时的协议核查
  • 排查“部分浏览器能打开、部分功能异常”的前端问题
  • CMS 与老系统迁移 HTTPS 后的兼容性检查
  • 为前端资源治理提供按页面、按资源类型的清单

检查方式

检查方式
1. 打开目标页面,在浏览器开发者工具控制台收集混合内容告警
2. 在资源面板按协议筛选出所有 http:// 引用,区分自有域与第三方域
3. 逐项核对第三方是否支持 HTTPS(不支持时考虑本地托管替代)
4. 检查表单提交目标与 iframe 嵌入地址是否同样是 HTTPS
5. 记录:页面地址、资源类型、影响(功能阻断或仅显示降级)

资源类型与影响

资源类型分类影响
脚本与样式主动被浏览器阻断,页面功能或布局异常
iframe主动嵌入内容不显示或被拒绝加载
XHR 与 fetch主动接口请求被阻断
图片与图标被动可被中间人替换,内容不可信
音视频被动可被替换或插入篡改内容
表单提交目标取决于类型数据以明文提交,存在泄露风险
阶段性缓解可以用内容安全策略中的升级不安全请求指令,让浏览器把 HTTP 资源自动升级为 HTTPS 请求;但根因仍是资源协议整治,第三方不支持 HTTPS 时要换成本地托管或替代方案。
强制升级前先确认第三方资源支持 HTTPS:直接切换会让原本可用的资源加载失败,表现为线上功能缺失。

易错点

  • 只处理脚本类资源,漏掉图片、音视频与表单提交目标
  • 未确认第三方资源是否支持 HTTPS 就强行切换,造成页面资源加载失败
  • 只在一两个页面检查,漏掉低频页面(帮助中心、活动页)上的引用
  • 把浏览器自动升级当作修复完成,实际仍存在降级回退的可能
  • 忽略应用内嵌 WebView 场景:移动端与桌面端的内核策略不同,表现可能不一致

数据来源与参考

  • W3C Mixed Content 规范
  • MDN 混合内容指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌