news 2026/10/4 7:56:20

Claude Counter 隐私与安全设计:零服务器、零追踪、只请求 claude.ai 的最小权限扩展实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Claude Counter 隐私与安全设计:零服务器、零追踪、只请求 claude.ai 的最小权限扩展实践

Claude Counter 隐私与安全设计:零服务器、零追踪、只请求 claude.ai 的最小权限扩展实践

【免费下载链接】claude-counterA minimal browser extension that shows token count, cache timer, and usage bars on claude.ai.项目地址: https://gitcode.com/gh_mirrors/cl/claude-counter

Claude Counter 是一款专为 claude.ai 打造的免费浏览器扩展(browser extension),在页面上显示 Token 用量、缓存倒计时和使用率进度条。它的隐私设计可以用三个词概括:零服务器、零追踪、最小权限——所有数据只在本地浏览器内流转,扩展发出的唯一网络请求指向claude.ai官方接口,不携带任何遥测代码。

为什么扩展的隐私设计值得你关注 🔍

浏览器扩展运行在网页旁边,天然拥有访问你浏览内容的"近距离权限"。一个不负责任的扩展可以:

  • 把你的对话内容偷偷发到第三方服务器
  • 收集你的账号、浏览习惯做追踪
  • 申请与功能无关的权限(如读取全部网站数据)

Claude Counter 的做法恰恰相反:用最少的权限,完成最窄的功能。下面带你逐一拆解它的设计决策,适合想了解"好扩展长什么样"的新手。

权限清单极简:manifest 里没有 permissions 字段

打开项目的清单文件 manifest.json,你会注意到一个罕见的事实:整个文件里没有permissions声明。

权限是否申请说明
storage存储❌不持久化任何用户数据
tabs/history标签页❌无法窥探你的其他标签
background后台常驻❌没有后台脚本,无跨站活动
cookiesCookie❌仅在页面内读取,见下文

在 Firefox 端还额外声明了 manifest.json 中的data_collection_permissions: { "required": ["none"] },等于向浏览器明示:本扩展不采集任何数据。

💡 新手判断口诀:一个"看用量"的工具,如果要求unlimitedStorage或跨站权限,那就要打问号了。

只注入 claude.ai,其他网站零存在感

在 manifest.json 中,内容脚本与可访问资源的注入范围被严格锁死:

  • 内容脚本:"matches": ["https://claude.ai/*"]—— 只有访问 claude.ai 时才会加载 src/content/main.js 等脚本
  • 资源白名单:src/injected/bridge.js 同样只对 claude.ai 可见

这意味着:你打开新闻站、网银、Gmail 时,Claude Counter一行代码都不会执行。权限最小化不是口号,而是由清单文件(manifest)强制保证的。

零服务器架构:数据从哪里来,又回到哪里?

这是理解 Claude Counter 安全性的关键。它不建立自己的后端,而是"顺路"读取 claude.ai 本就要加载的数据:

┌─ 你的浏览器(全部发生在这里)──────────────────┐ │ │ │ claude.ai 页面 ←→ 注入脚本 bridge.js │ │ │ │ │ │ │ 拦截官方 API 响应 │ 本地 postMessage│ │ ▼ ▼ │ │ token 统计 / 缓存计时 / 使用率 → 页面 UI │ └─────────────────────────────────────────────────┘

具体分工(见 src/injected/bridge.js):

  1. 会话数据:拦截 claude.ai 自己拉取的会话树响应(/api/organizations/.../chat_conversations/...),用于本地估算 token 数
  2. 使用率数据:监听页面自带的 SSE 事件流中的message_limit消息,获取比 /usage 页面更精确的百分比
  3. 主动请求:仅在刷新时请求https://claude.ai/api/organizations/{orgId}/usage,且必须带着你已登录的会话凭据

换句话说,扩展发出的每一个请求,和你自己手动打开 claude.ai 的 /usage 页面发出去的请求完全一样——同样的域名、同样的会话、同样的数据。

唯一的"敏感操作":读一个 cookie

整个项目中唯一涉及凭据的代码在 src/content/main.js:

  • 读取页面 cookie 中的lastActiveOrg字段
  • 用途:拼出claude.ai/api/organizations/{orgId}/usage这个请求的组织 ID
  • 该值只用于向 claude.ai 发请求,不写入任何存储、不离开浏览器

配合 src/content/tokens.js 的本地 token 统计(基于内置的o200k_base分词器,纯本地计算),扩展完成了全部功能,而你的对话文本从未被打包发往任何地方——分词统计完全发生在浏览器内存里。

第三方代码透明:只有一份 MIT 分词器

项目对第三方依赖做了完整披露(见 THIRD_PARTY_NOTICES.md):

  • 唯一内置的第三方代码:gpt-tokenizer(MIT 协议),被固化在 src/vendor/o200k_base.js 中
  • 没有任何远程加载:扩展包内所有 JS 文件都在安装时本地化,不存在运行时从 CDN 拉取代码的情况

这避免了"扩展本体无害、但运行时偷偷加载外部脚本"的经典风险。

不想装扩展?用户脚本版本同样最小化

项目还提供 userscript/claude-counter.user.js 用户脚本版本,其头部声明了@grant none(不申请 Tampermonkey 扩展 API)和@match https://claude.ai/*(仅匹配 claude.ai),安全边界与扩展版一致。

安全设计速查表 ✅

设计点Claude Counter 的做法新手启示
网络请求仅claude.ai官方接口装扩展前先看它访问哪些域名
数据持久化无(无 storage、无 localStorage)关掉标签页即无残留
权限申请0 项权限声明权限越少越安全
注入范围仅https://claude.ai/*功能越窄,攻击面越小
第三方依赖1 个 MIT 分词器,全部本地内置警惕运行时远程加载
后台组件无 background 脚本无常驻进程 = 无跨站窥探

一句话总结:Claude Counter 用"零权限 + 单域名 + 纯本地计算"的组合,证明了一个展示工具型扩展可以做到无服务器、无追踪、无持久化。如果你正在评估一个浏览器扩展是否值得信任,不妨把它上面的安全清单当作你的检查模板。

【免费下载链接】claude-counterA minimal browser extension that shows token count, cache timer, and usage bars on claude.ai.项目地址: https://gitcode.com/gh_mirrors/cl/claude-counter

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

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

bvar:C++高性能服务的嵌入式指标引擎设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 7:53:04

volatile到底在拦什么:SysTick->VAL读的哪格

那个空循环&#xff0c;怎么在别人机器上就废了我在自己板子上写了个空循环延时&#xff0c;跑了半个月啥事没有。代码就长这样&#xff1a;uint32_t i; for (i 0; i < 72000U; i) { }结果代码丢给同事&#xff0c;他编译完一烧&#xff0c;延时直接没了&#xff0c;电机启…

作者头像 李华
网站建设 2026/10/4 7:52:03

基于RT-Thread与W25Q128的STM32 OTA远程升级方案详解

1. 为什么要把OTA放在片外Flash上做嵌入式开发的朋友应该都遇到过这种尴尬&#xff1a;产品已经量产了&#xff0c;结果现场反馈某个功能有Bug&#xff0c;或者需要加一个新协议&#xff0c;这时候只能派工程师带着ST-Link/J-Link出差去现场&#xff0c;挨个设备拆壳、接线、烧…

作者头像 李华
网站建设 2026/10/4 7:52:00

OpenRig开源模拟赛车座舱DIY全攻略:从图纸到稳定车架

我头一回看到 OpenRig 这个项目名&#xff0c;第一反应还以为是哪个油田设备厂的新品——Rig 这个词在中文里最常被翻译成钻机、设备架&#xff0c;放到舞台灯光、影视器材圈子里指代的东西也五花八门。但只要你和我一样掉进模拟赛车这个坑&#xff0c;看见 open rig 这个组合…

作者头像 李华
网站建设 2026/10/4 7:51:04

用Python绘制专属世界地图:geopandas与matplotlib完整指南

如果你手里只有一台电脑&#xff0c;也想画出一张完全属于自己的世界地图&#xff0c;不依赖在线地图服务、不交订阅费&#xff0c;那这篇文章就是给你准备的。我用了几个晚上&#xff0c;把基于Python的矢量地图绘制流程完整跑通了一遍&#xff0c;从环境搭建到出图美化&#…

作者头像 李华