密钥脱敏

文档发表:2026-08-21 · 阅读:11 · 更新:2026-08-21

如果你要利用 RULES 投喂密钥信息,你滴密钥可能会泄露在 GitHub 上,原因是 qqqide “保留原料级上下文资产” 滴理念包括将 AI 滴一切指令操作,记录在磁盘上滴 all.json/all.txt。展开看,其实你在对话框中直接喂给 AI 滴信息或子弹文件,如果当中包含密钥,也会被持久化在你滴硬盘上,接下来,如果你选择将那些持久化文件上传到公开 GitHub 仓库,你就完成了密钥滴泄露。

我们预计会在qqqide v0.4版本,提供一个高级选项,用于协助本地密钥滴脱敏(记录原料,但尽可能脱敏)


完整列表:可能包含密钥的本地文件

A. AI 对话资产(每楼层一套)— 最高风险

文件详细路径含密钥的原因风险
all.json{项目}/_qqq/quests/q{n}.{标题}/f{n}.{问题}/all.json对话全文 + 全部工具调用参数与输出(含 run_command 输出、read_file 读到的 .env 内容)🔴 最高
all.txt同上目录 all.txt人类可读母本,内容与 all.json 同源🔴 最高
reasoning.txt同上目录 reasoning.txtall.txt 截断版(工具结果截到 300 字),密钥若在用户消息/AI 回复中仍在🟠 高
ctx.json{quest 目录}/ctx.json(q{n}.{标题}/ 下)上下文背包饼干——压缩时原样保留密钥文本,重启恢复全靠它🟠 高
img_N.png楼层目录下发送的截图/图片,可能含密钥画面(登录页、API 控制台)🟠 高
web_fetch_N.txt / web_search_N.txt楼层目录下AI 抓取的网页/搜索结果落盘,若抓的是密钥相关页面🟡 中
all.json.tmp.*楼层目录下写盘残留临时文件(正常会清理,异常断电可能残留)🟡 低

B. 剪贴板与子弹 — 直喂通道

文件详细路径含密钥的原因风险
bullet_{时间戳}_{qid}_f{n}.txt{项目}/_qqq/bullet/子弹按钮=剪贴板→磁盘,复制过的密钥 1:1 落盘(20MB FIFO 轮转,被挤出前一直存在)🔴 最高

C. 项目级数据库与状态 — 静默冗余

文件详细路径含密钥的原因风险
quest.sq3{项目}/_qqq/alphal/quest.sq3每层楼的 question 字段存用户问题原文——直问密钥即入库🟠 高
only.sq3{项目}/_qqq/alphal/only.sq3ai.uiStates.{panelId} 快照编辑框草稿(未发送的粘贴内容也持久化!)🟠 高
panel_re{l|c|r}.json{项目}/_qqq/alphal/三面板 resume 状态(含最近 UI 状态)🟡 中
agent-{日期}.log{项目}/_qqq/new_log/AI 面板诊断日志,异常堆栈可能含工具参数原文(30 天轮转)🟡 中
blobs/{sha256前2位}/{sha256}.gz{项目}/_qqq/timeline/blobs/文件历史版本快照,不可变、永不删——编辑过 .env 则每个含密钥版本都永久存档🔴 最高
timeline.wal / timeline.db / timeline.db.bak{项目}/_qqq/timeline/时间线索引,指向上述 blob🟡 低(本身无内容)
_qqq/index/{主文件夹}/_qqq/index(search_smart 索引)BM25 倒排索引含被索引文件内容;_qqq 自身在 SKIP_DIRS,但项目内 .env 若被索引则内容入倒排🟠 高

D. 粘贴附件

文件详细路径含密钥的原因风险
_qqqvault/ 下全部文件{当前文件所在目录}/_qqqvault/粘贴的图片/文件原样落盘(密钥截图、含密钥的配置文件)🟠 高

E. 程序级保险库({包根}/gh555.com/Data/)

文件详细路径含密钥的原因风险
global.sq3{包根}/gh555.com/Data/alphal/global.sq3跨项目全局库(最近文件夹/主题/语言/剪切板)——含剪贴板类数据时需注意🟡 中
auth.enc{包根}/gh555.com/Data/alphal/auth.enc登录凭证加密存储(加密态,但理论可解密)🟠 高
launcher-swap.log{包根}/gh555.com/Data/更新日志(路径级,一般无密钥)⚪ 低
device_id / factory_version{包根}/gh555.com/Data/alphal/设备标识,无密钥⚪ 无

F. OS 级(%LOCALAPPDATA%/qqqide/)— 项目外冗余

文件详细路径含密钥的原因风险
ai.sq3%LOCALAPPDATA%/qqqide/ai.sq3Ctrl+P 最近文件列表——.envconfig.json 等文件名可见🟡 低
ws.sq3%LOCALAPPDATA%/qqqide/ws.sq3最近主文件夹列表⚪ 低
search.sq3%LOCALAPPDATA%/qqqide/search.sq3搜索词历史——搜过密钥相关词即留痕🟡 低
roam.sq3 / kope.sq3%LOCALAPPDATA%/qqqide/文件浏览器/音频状态⚪ 低
squads.json%LOCALAPPDATA%/qqqide/squads.json窗口标题(槽位+主文件夹名)⚪ 低
alphal/crash-net/%LOCALAPPDATA%/qqqide/alphal/crash-net/崩溃快照/心跳,极端情况含内存态信息⚪ 低

v0.4 前滴解决方案

  • 仓库忽略:公开仓库 .gitignore 包含 _qqq/_qqqvault/.env*.sq3
  • 上传前扫描:push 公开仓库前,先扫一遍本地:
  findstr /S /M /I "sk- AKIA eyJhbGci github_pat ghp_ cfut_ LTAI" {项目}\_qqq
  • 已泄露:密钥立即作废轮换。