feat: 生产全量请求/响应加密完成(日志)
This commit is contained in:
parent
76ce62b5c6
commit
d7086382f7
@ -32,3 +32,5 @@
|
||||
- 2026-08-27 | CHG | admin 全局主题美化:新增 src/styles/theme.css(靛蓝→紫品牌色 !important、圆角/轻投影/非纯白背景/主按钮渐变/滚动条/暗色适配),bootstrap.ts 接入;工作台 page 重做为渐变英雄头+玻璃统计卡+图标快捷宫格。前端未提交。
|
||||
|
||||
- 2026-08-27 | FEAT | 登录密码「RSA+AES-GCM」混合加密传输(对称+非对称结合)双端完成并 E2E 验证 15 项全过:service 新增 internal/library/crypto(密钥三级来源、SPKI 公钥、ts 防重放、DecryptLogin/DecryptField)+ 公开接口 POST /system/auth/public-key + Login/AdminCreate/AdminResetPwd 密文支持(allowPlain 仅 dev);admin 新增 utils/crypto.ts(Web Crypto 零依赖)+ loginApi/getPublicKeyApi 加密 + createAdmin/resetAdminPassword 加密字段;数据库密码本就是 bcrypt 哈希。提交 service 0648477 / admin a1bddc3(push 仍待令牌)。⚠️坑:①公钥必须 SPKI(MarshalPKIXPublicKey),PKCS#1 致 ASN.1 wrong tag;②Node 模拟时 GCM tag 需 getAuthTag 单独取(WebCrypto/Go 密文已含 tag);③commitlint scope 须在允许列表(用 other/project)。
|
||||
|
||||
- 2026-08-27 | FEAT | 生产全量请求/响应加密(开发保持仅密码加密):service 新增 middleware/APICrypto(请求整体解密+响应用同一 AES 会话密钥加密回传,public-key 明文豁免,未加密请求拒绝)+ crypto 增 DecryptRequest/EncryptResponse/fullBody 开关;admin 新增 installCryptoInterceptors(请求整体加密、响应解密最先注册,requestClient+baseRequestClient 双生效),VITE_GLOB_API_ENCRYPT 控制(prod true/dev false);injectEnv 增 ENCRYPT_FULL_BODY/ENCRYPT_ALLOW_PLAIN。提交 service ebc507e / admin f8463e9。⚠️坑:①GF 的 r.GetBody() 缓存密文到 bodyContent 且 handler Parse 走缓存 → 中间件须 io.ReadAll(r.Request.Body);②GF_GCFG_ENV 仅 gf run CLI 认,直接跑二进制恒加载 config.yaml → 开关必须 env 注入;③Node 模拟响应解密需 setAuthTag 显式分离 tag(浏览器 WebCrypto 直接整体解密);④TS Uint8Array.subarray 返回 ArrayBufferLike 不满足 BufferSource 需拷贝。验证:dev 仅密码 15 项 + prod 全量 9 项 E2E 全过。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user