fix(security): 鉴权签名密钥 fail-closed,禁用仓库内置默认密钥
- ADMIN_TOKEN_SECRET 的随机化闸门由 NODE_ENV 改为 SECURE_MODE:线上以 development 运行时不再使用公开默认密钥(该密钥可伪造管理员/用户 token) - 运行模式与安全开关常量前移到模块顶部,避免鉴权常量初始化顺序问题 - 启动自检与回归用例同步(109 套件/720 用例全绿)
这个提交包含在:
@@ -13,11 +13,11 @@ describe('第十八批鉴权密钥安全闸门', () => {
|
||||
expect(indexCode).not.toContain("process.env.ADMIN_TOKEN_SECRET || 'peiwan_admin_token_secret_v1'");
|
||||
});
|
||||
|
||||
it('必须存在默认密钥常量与生产环境随机化闸门', () => {
|
||||
it('必须存在默认密钥常量与 fail-closed 随机化闸门(不依赖 NODE_ENV)', () => {
|
||||
expect(indexCode).toContain('const DEFAULT_ADMIN_TOKEN_SECRET =');
|
||||
const start = indexCode.indexOf('const DEFAULT_ADMIN_TOKEN_SECRET =');
|
||||
const block = indexCode.slice(start, start + 1200);
|
||||
expect(block).toContain("process.env.NODE_ENV === 'production'");
|
||||
expect(block).toContain('if (SECURE_MODE)');
|
||||
expect(block).toContain('crypto.randomBytes');
|
||||
expect(block).toContain('SECURITY');
|
||||
});
|
||||
|
||||
在新工单中引用
屏蔽一个用户