ENGINEERING NOTE 41 / 50 · CARD
把卡片客服权限与资金操作权限分开
查询交易、查看敏感信息和移动资金是不同权限。每个角色只获得工作所需操作。
本文由 OPEN RAMBO 发布。工程方案和伪代码用于说明设计,不是现有产品 API 文档;示例数字均为演示。
明确建模操作
不要用一个管理员开关覆盖全部操作。分别定义查询、导出、冻结、充卡和调整,并限定租户。客服可看脱敏时间线,但无权改余额。
服务端执行检查
隐藏按钮不是授权。每个接口校验权限和归属。后台任务和内部服务也需要受限身份,避免集成被攻破后成为无限制管理员。
审计高影响操作
高影响操作记录执行者、原因、对象和结果。需要双人控制时,应落实为流程而非手册备注。岗位变化后复核权限,临时权限到期失效。
示意流程
authorize(actor, action="card.freeze", tenant=card.tenant_id)
record_audit(actor, safe_card_ref, reason)
execute_authorized_action()如何验收
逐角色测试各接口,包括界面隐藏但可直接请求的操作。