它是什么
navigator.deviceMemory 粗略地告诉页面设备有多少内存,好让重型应用自行适配。为了限制指纹,Chromium 会把它取整到 2 的幂并封顶——这个 API 只会返回寥寥几个值。Firefox 与 Safari 没有实现它。
网站怎么读
navigator.deviceMemory // 8 (0.25 · 0.5 · 1 · 2 · 4 · 8 …)
Sec-CH-Device-Memory: 8 // the same value, as a Client Hint header服务端用 Accept-CH 声明后,同一个值还会以 Sec-CH-Device-Memory 请求头发送,于是 JavaScript 副本和请求头副本可以互相比对。
为什么它能认出你
它的熵按设计就很小。对风控的价值恰恰相反:因为合法集合太小,任何其他数字都证明这个属性是人手写的,而不是测出来的。
风控怎么用它
检查就是一次集合成员判断。3、6、12 或 128 这种值不会从浏览器里出来。请求头与脚本不一致,或者出现在引擎根本不报告它的浏览器上,同样一锤定音。
常见翻车点
照抄机器的真实内存(64)而不是浏览器会取整成的值;在 Firefox 环境里暴露 deviceMemory;JavaScript 属性与 Client Hint 取值不同。
Mango 正在接受候补登记。以下介绍首发能力,客户端将在发放邀请后开放使用。
Mango Browser 如何处理
自定义Mango 的 Chromium 环境按该内核暴露的取值配置设备内存。Firefox 不提供 navigator.deviceMemory,这种情况下没有读数是正常现象,不代表环境不一致。
检测你的值
跳转到你的检测结果中的这一项。