背景与价值
Client Hints可提供设备与浏览器特征。需最小化启用范围并禁用高熵字段,降低指纹风险。
统一规范
- Accept-CH白名单:仅允许 `Width/DPR/Viewport-Width` 等低熵信息。
- 高熵禁用:默认不请求 `UA-Platform/Model/Arch/Bitness/Full-Version`。
- 缓存一致性:下发 `Vary` 与一致性策略。
核心实现
头设置与校验
```ts
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

发表评论 取消回复