Files
makemd/docs/RULES/security.md
wurenzhi 1b14947e7b refactor: 优化代码结构和类型定义
feat(types): 添加express.d.ts类型引用
style: 格式化express.d.ts中的接口定义
refactor: 移除未使用的AntFC类型导入
chore: 删除自动生成的.umi-production文件
feat: 添加店铺管理相关表和初始化脚本
docs: 更新安全规则和交互指南文档
refactor: 统一使用FC类型替代React.FC
perf: 优化图表组件导入方式
style: 添加.prettierrc配置文件
refactor: 调整组件导入顺序和结构
feat: 添加平台库存管理路由
fix: 修复订单同步时的库存检查逻辑
docs: 更新RBAC设计和租户管理文档
refactor: 优化部门控制器代码
2026-03-30 01:20:57 +08:00

5.0 KiB
Raw Permalink Blame History

安全规则

入口: _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: '***' };

7. 安全增强

7.1 安全措施

  • 密码策略:强密码要求和定期更换
  • 双因素认证管理员账号强制开启2FA
  • 登录异常检测:异常登录行为的监控和预警
  • 权限边界检查:防止权限提升攻击

7.2 性能优化

  • 用户数据缓存:提高用户信息查询速度
  • 批量操作支持:批量添加、更新用户
  • 分页优化:大数据量用户列表的高效展示
  • 异步处理:用户导入等耗时操作的异步处理

最后更新: 2026-03-29