帖子说了什么
@Cydr4l 用一个 Claude Code 的社区插件(mod)context-inspector 分析自己六个真实会话的上下文占用,顺手测了它的 /context-export 导出功能。这个功能自称「会屏蔽密钥」,他就往会话里放了 8 个假的密钥,结果有 4 个原样出现在导出文件里,分别是:
- 命令行里的
--token参数; - HTTP 请求里的
x-api-key头; - 写成
user:password@host形式的网址; curl -u 用户名:密码。
他把问题报给了作者,作者三天内确认了这四种情况,修复和回归测试已经写好,但发帖时还没发布。所以他的建议很直接:分享导出文件之前,自己先读一遍。
为什么这条值得记住
会话导出常被拿来发给同事、贴进工单、交给别的 Agent 继续干活。而 Claude Code 的会话里,除了你打的字,还有工具调用的完整输出:curl 命令、env 打印、配置文件内容。屏蔽规则通常按「长得像 key」的模式去匹配,像 sk-ant- 这种前缀好认,但藏在参数、请求头、网址里的凭证,格式五花八门,最容易漏网。
一旦导出文件流出去,泄露的不只是一个 API key。如果里面有你 Claude 账号相关的令牌,或者云服务的密码,别人拿去用,产生的异常调用和账单都算在你头上,严重时还会牵连账号本身。
落地做法
- 用假密钥先测一遍。 新装任何声称「自动脱敏」的导出或日志工具,先在测试会话里放几种格式的假凭证(参数、请求头、网址、
curl -u、.env片段),导出后搜一遍。 - 分享前人工过一遍。 在导出文件里搜
token、key、password、Authorization、://后面带@的网址。 - 从源头少打印。 别让 Agent 用
cat .env、env或把密钥直接写进命令行参数;能用环境变量或密钥管理工具引用的就别展开明文。 - 真漏了先吊销。 如果导出文件已经发出去,先去对应控制台吊销、轮换凭证,再处理文件本身。
- 插件等正式发布再升级。 作者说修复已就绪,但以发布说明为准,升级后再用假密钥复测一次。
小结
「会屏蔽密钥」是一句承诺,不是保证。导出会话前先自测、再人工检查,比事后轮换省事得多。
