news 2026/9/12 16:55:30

FingerprintJS 如何关闭监控请求避免发送使用统计?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FingerprintJS 如何关闭监控请求避免发送使用统计?

FingerprintJS 如何关闭监控请求避免发送使用统计?

【免费下载链接】fingerprintjsThe most advanced free and open-source browser fingerprinting library项目地址: https://gitcode.com/GitHub_Trending/fi/fingerprintjs

如果你用 NPM 或 Yarn 把 FingerprintJS 集成到项目里,库默认会向 FingerprintJS 的服务器发送 AJAX 请求来收集使用统计。本文说明这个请求的触发条件和包含的数据,并给出两种关闭方式:给FingerprintJS.load()monitoring: false,或改用 CDN 构建(默认不发送)。

监控请求什么时候发、发什么内容

根据 API 参考:

  • 每次load函数运行时,有 0.1% 的概率发送一个请求;
  • 同一个浏览器实例最多每周发送一次(除非浏览器缓存被清空);
  • 请求包含以下信息:
    • 库的版本号;
    • 客户端发送的 HTTP 头,包括库所在页面的 origin 和 referrer;
    • 客户端 IP。

从源码看,该请求是XMLHttpRequest发起的 GET 请求,地址为https://m1.openfpcdn.io/fingerprintjs/v{version}/npm-monitoring,其中{version}是库的版本号(见 src/agent.ts)。NPM 包中monitoring选项的默认值是true(src/agent.ts),所以 NPM 安装方式下请求是默认开启的。

关闭方法:monitoring: false

FingerprintJS.load()的签名(来自 docs/api.md):

FingerprintJS.load({ delayFallback?: number, debug?: boolean, monitoring?: boolean }): Promise<Agent>

在现有初始化代码上加一行monitoring: false即可关闭这些请求,官方文档给出的改法:

const fpPromise = FingerprintJS.load({ + monitoring: false })

完整的 NPM 集成示例(其余部分与 readme.md 中的示例一致):

import FingerprintJS from '@fingerprintjs/fingerprintjs' const fpPromise = FingerprintJS.load({ monitoring: false }) ;(async () => { const fp = await fpPromise const result = await fp.get() console.log(result.visitorId) })()

monitoring: false的作用是禁掉库发给 FingerprintJS 服务器的统计请求(docs/api.md),指纹采集逻辑本身不受影响,fp.get()照常返回visitorId

替代路径:使用 CDN 构建

API 参考和 v4 到 v5 迁移指南都说明:从 CDN(openfpcdn.io)下载的脚本默认就是关闭监控的。源码中可以看到对应机制——CDN 会把运行时标志window.__fpjs_d_m替换为truemonitor()随即直接返回、不发送请求(src/agent.ts)。

如果你的项目不需要把库打进自己的构建产物,直接从 CDN 加载(例如import('https://openfpcdn.io/fingerprintjs/v5'),写法见 docs/api.md 的 Browser ECMAScript module 一节),就不必额外传monitoring: false

验证监控确实没有发送

项目的测试代码 src/agent.test.ts 给出了明确的验证逻辑:

  • 调用load({ delayFallback: 0, monitoring: false })后,断言XMLHttpRequest完全没有被构造,opensend也都没有被调用,并且agent.get()仍能正常执行;
  • 反之,默认配置(或不显式传参)下,XMLHttpRequest会被构造,openget方法和匹配fingerprintjs/v*/npm-monitoring的 URL 被调用(src/agent.test.ts)。

开发时也可以利用请求 URL 中固定的npm-monitoring路径段,在浏览器网络面板里按该关键字过滤,检查页面加载过程中是否出现统计请求。注意由于 0.1% 的采样概率,单次load本来就不一定会发请求,过滤不到不能说明开关没生效。

限制与适用条件

  • monitoring选项针对的是 NPM/Yarn 安装方式下的统计请求;CDN 构建本来就不会发送,无需(也不能靠这个参数再去改)它;
  • 关闭的只是使用统计请求。请求本身按文档描述不包含指纹数据,但包含页面 origin、referrer 和客户端 IP,如果你的合规要求是不向 FingerprintJS 服务器发任何请求,就应按上文把monitoring置为false或改用 CDN 构建。

【免费下载链接】fingerprintjsThe most advanced free and open-source browser fingerprinting library项目地址: https://gitcode.com/GitHub_Trending/fi/fingerprintjs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 16:54:22

Paperzz文献综述工具:AI驱动的学术写作革命

1. 项目概述&#xff1a;Paperzz文献综述功能的核心价值 作为一名长期从事学术研究的科研工作者&#xff0c;我深知文献综述是每个研究者必经的"痛苦"环节。传统综述写作需要经历选题定位、文献检索、阅读筛选、观点提炼、逻辑组织等多个耗时耗力的步骤。而Paperzz推…

作者头像 李华
网站建设 2026/9/12 16:53:09

Sunshine 游戏串流新手教程:5 步装完串出第一帧

Sunshine 游戏串流新手教程&#xff1a;5 步装完串出第一帧 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 书房里的游戏主机配置拉满&#xff0c;人却在客厅&#xff0c;手里只有…

作者头像 李华
网站建设 2026/9/12 16:49:58

DolphinScheduler:从拉包到跑通第一条工作流

DolphinScheduler&#xff1a;从拉包到跑通第一条工作流 【免费下载链接】dolphinscheduler Apache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code 项目地址: https://gitcode.com/GitHub_Trending…

作者头像 李华
网站建设 2026/9/12 16:49:54

如何 10 分钟跑通音频驱动说话人生成:SadTalker 完整安装教程

如何 10 分钟跑通音频驱动说话人生成&#xff1a;SadTalker 完整安装教程 【免费下载链接】SadTalker [CVPR 2023] SadTalker&#xff1a;Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation 项目地址: https://gitc…

作者头像 李华