From c7cb88d9aa3a9b54dbd8d035285501f8f68e12d0 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Sat, 12 Sep 2026 23:58:10 +0800 Subject: [PATCH] =?UTF-8?q?chore(security):=20=E8=BD=AE=E6=8D=A2=20verify-?= =?UTF-8?q?l2.sh=20=E9=87=8C=E9=82=A3=E6=8A=8A=E6=9B=BE=E8=BF=9B=20git=20?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E7=9A=84=20user=20key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 旧值(jianf 的 user key,1759666 起在历史里)已从库里删除,实测 `/auth/me` → **401**,即暴露在历史中的那串现在无效。新值只存在 /root/gotmp/verify-l2-token.txt(600),脚本 6/6 通过。 - 只删当前行**不等于**作废:git 历史里的密钥必须靠轮换才能失效。 - 轮换前先核对过使用面:全仓库只有这一处,/root 下的脚本与运行进程环境里都没有。 - 生产库里临时建的留档表已 DROP,那行旧记录挪到 /root/gotmp/user-keys-rotation-backup-20260912.json(600)。 - 轮换过程本身也踩了一个小坑:sqlite3 CLI 里没有 gen_random_uuid() (那是网关 Go 驱动注册的函数),插入必须显式给 key_id —— 而当时旧行已经删掉了, 于是出现了一小段「无可用 key」的空档(立刻补上并双向验证过)。 --- scripts/verify-l2.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/verify-l2.sh b/scripts/verify-l2.sh index cebcbbc..2dc7b14 100644 --- a/scripts/verify-l2.sh +++ b/scripts/verify-l2.sh @@ -1,7 +1,10 @@ #!/usr/bin/env bash # L2 端到端验证脚本 set -euo pipefail -# 管理员 user key。**不要把它写进这个文件** —— 仓库是会被看到的地方, +# 管理员 user key。**不要把它写进这个文件**。 +# +# 2026-09-12:本文件原来硬编码了一把 jianf 的 user key(自 1759666 起在 git 历史里)。 +# 已轮换作废(旧值实测 /auth/me → 401),新值只存在 /root/gotmp/verify-l2-token.txt(600)。 —— 仓库是会被看到的地方, # 而写进 git 历史的密钥只能靠轮换作废(删掉当前行不能把它从历史里拿掉)。 # # 取法(任一):