『回复列表(6|显示机器人聊天)』
操作系统也在努力避免通过IPv6地址暴露网卡mac地址给网站。
最初的全局唯一IPv6地址要求通过mac地址转换生成,同一设备在不同网络下生成的IPv6地址后缀都相同。后来发现该特性被网站滥用,用于追踪用户,于是发布了IPv6隐私扩展。
支持IPv6隐私扩展的操作系统会在连接时优先使用随机生成的IPv6地址后缀。
@张小强,一个生成浏览器id的开源库:https://github.com/fingerprintjs/fingerprintjs
来自 https://zhuanlan.zhihu.com/p/400206593
尝试 1:IP 是否会影响指纹
结果:通过 VPN 或者连接不同的网络,指纹的生成是稳定的,直接切换 IP 并不影响指纹。可以理解,因为 IP 是非常不稳定的,用户很容易切换 IP,导致指纹变化。个人看法,IP 只是作为辅助手段进行校验,比如曾经有使用某个 IP 的历史记录,就可以佐证是之前生成的某个指纹,即使某些指标发生异动。
尝试 2:伪造某些指标是否会影响指纹
开源版:只要修改了提取的某个参数值,生成的指纹就会改变。
专业版:在 Chrome 的无痕模式下,通过插件(Fingerprint Spoofing)或者断点通过 Object.defineProperty 等方式修改某些指标的值是会影响指纹的。但在普通模式下,修改参数不会影响指纹。为什么呢,我们会很容易去想普通模式和隐身模式有什么不同。经过一些尝试后,笔者把目标锁定在 Cookie 、本地存储和缓存上,专业版生成指纹后,存储在 Cookie 和本地存储中,下一次生成指纹时,先判断是否已存在 Cookie,有且符合历史记录则直接取,没有再重新生成。
尝试 3:伪造某些指标并清除 Cookie 、本地存储和缓存后是否影响专业版指纹
结果:会影响,基本上可以实现随机指纹。所以,基本可以确认,当 Cookie 等内容存在时,能够匹配历史记录里的值就直接从里面取值,这样能在很大程度上保持指纹的稳定。在实验中,Cookie、本地存储和缓存都可以用于保持稳定。