---

title: Client Hints治理与隐私收敛(Accept-CH/高熵禁用)最佳实践

keywords:

  • Client Hints
  • Accept-CH
  • 高熵
  • UA-CH
  • 隐私收敛

description: 通过Accept-CH白名单与限制高熵UA-CH请求、最小化收集范围与缓存一致性治理,降低指纹与隐私泄露风险。

categories:

  • 文章资讯
  • 编程技术

---

背景与价值

Client Hints可提供设备与浏览器特征。需最小化启用范围并禁用高熵字段,降低指纹风险。

统一规范

  • Accept-CH白名单:仅允许 Width/DPR/Viewport-Width 等低熵信息。
  • 高熵禁用:默认不请求 UA-Platform/Model/Arch/Bitness/Full-Version
  • 缓存一致性:下发 Vary 与一致性策略。

核心实现

头设置与校验

type Res = { setHeader: (k: string, v: string) => void }

function setClientHints(res: Res, enable = ['DPR','Width','Viewport-Width']) {
  res.setHeader('Accept-CH', enable.join(', '))
  res.setHeader('Vary', 'Accept-CH')
}

function disallowHighEntropy(reqHeaders: Record<string, string | undefined>): boolean {
  const h = String(reqHeaders['sec-ch-ua-platform'] || reqHeaders['sec-ch-ua-model'] || reqHeaders['sec-ch-ua-arch'] || reqHeaders['sec-ch-ua-bitness'] || reqHeaders['sec-ch-ua-full-version'] || '')
  return h.length === 0
}

落地建议

  • 仅在必要页面启用低熵Client Hints,禁止请求高熵UA-CH;配置Vary

验证清单

  • 是否下发限制后的Accept-CH;是否拒绝或不请求高熵UA-CH字段。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部