Files
makemd/docs/RULES/security.md
wurenzhi 2b86715c09 refactor: 优化代码结构并修复类型问题
- 移除未使用的TabPane组件
- 修复类型定义和导入方式
- 优化mock数据源的环境变量判断逻辑
- 更新文档结构并归档旧文件
- 添加新的UI组件和Memo组件
- 调整API路径和响应处理
2026-03-23 12:41:35 +08:00

4.5 KiB

安全规则

入口: _index.md


1. RBAC模型

1.1 预设角色

角色 权限范围 说明
ADMIN 全部 系统管理员
MANAGER 部门级 运营主管
OPERATOR 个人级 运营专员
FINANCE 财务级 财务主管
SOURCING 采购级 采购专家
LOGISTICS 物流级 物流专家
ANALYST 只读 数据分析师

1.2 角色权限矩阵

操作类型 OPERATOR MANAGER FINANCE ADMIN
查看数据 自己 部门 财务 全部
创建数据
修改数据 自己 部门 财务 全部
删除数据 部门 财务 全部
审批操作 低风险 中风险 全部
系统配置

2. 数据隔离

2.1 隔离层级

租户隔离 (Tenant)
  └── 组织隔离 (Organization)
       └── 部门隔离 (Department)
            └── 团队隔离 (Team)
                 └── 个人隔离 (Self)

2.2 数据范围类型

范围 英文 说明
仅自己 SELF 只看自己创建的数据
本团队 TEAM 看自己团队的数据
本部门 DEPT 看自己部门的数据
本组织 ORG 看整个公司的数据
全平台 ALL 超管,看所有租户数据

2.3 查询过滤实现

// Service层实现数据隔离
async listOrders(ctx: Context, params: ListParams) {
  const { tenantId, dataScope, parentId } = ctx.state.user;
  
  const query = db('cf_order').where('tenant_id', tenantId);
  
  switch (dataScope) {
    case 'SELF':
      query.where('created_by', ctx.state.user.id);
      break;
    case 'TEAM':
      query.where('team_id', parentId);
      break;
    case 'DEPT':
      query.where('dept_id', parentId);
      break;
    case 'ORG':
      // 已通过 tenant_id 过滤
      break;
    case 'ALL':
      // 超管,不过滤
      break;
  }
  
  return query;
}

3. 操作风险等级

3.1 风险分级

等级 操作类型 最低审核权限 自动执行
低风险 库存预警、数据同步 OPERATOR 允许
中风险 定价调整、广告投放 MANAGER 高置信度允许
高风险 退款审批、合同签订 FINANCE 禁止
极高风险 大额转账、系统配置 ADMIN 禁止

3.2 AI决策权限

interface AIDecisionPermission {
  module: string;
  action: string;
  riskLevel: 'low' | 'medium' | 'high' | 'critical';
  minReviewerRole: 'OPERATOR' | 'MANAGER' | 'FINANCE' | 'ADMIN';
  autoExecute: boolean;
  autoExecuteConfidence: number;  // 0.0 - 1.0
  requireDualApproval: boolean;
}

4. 决策流程门禁

4.1 状态流转

SUGGESTED → PENDING_REVIEW → EXECUTED/REJECTED

4.2 强制规则

规则 说明
禁止 Agent 直接修改核心业务数据
必须 人工在 Console 端确认后方可执行
必须 所有决策记录审计日志

4.3 核心业务数据

  • 价格调整
  • 退款审批
  • 订单创建
  • 合同签订
  • 大额转账

5. 审计日志

5.1 必须记录

字段 说明
operator_id 操作人ID
operator_role 操作人角色
action 操作类型
target_type 目标类型
target_id 目标ID
before_value 操作前值
after_value 操作后值
trace_id 链路追踪ID
created_at 操作时间

5.2 日志保留

日志类型 保留期限
登录日志 90天
操作日志 180天
审计日志 365天
异常日志 30天

6. 敏感数据处理

6.1 敏感字段

字段类型 处理方式
密码 加密存储,禁止明文
手机号 脱敏显示 138****1234
银行卡 脱敏显示 **** **** **** 1234
身份证 脱敏显示 110***********1234
API密钥 加密存储,禁止日志输出

6.2 禁止行为

// ❌ 禁止
console.log('API Key:', apiKey);
logger.info('User password:', password);
ctx.body = { password: user.password };

// ✅ 正确
logger.info('API Key: ***');
ctx.body = { password: '***' };

最后更新: 2026-03-22