- 每次操作重新验证用户、租户和权限。
- 不相信 Widget 提供的角色或 tenant ID。
- OAuth token 保存在服务端安全存储,不写入 Widget、状态文件或聊天。
- 服务账号按最小权限配置。
以下动作应使用明确确认或短期 confirmation token:
- 删除;
- 发布;
- 支付、退款、预算调整;
- 发送邮件、消息或通知;
- 权限、成员、凭证修改;
- 生产部署;
- 大规模批量操作。
- 使用版本号/ETag 防止陈旧 Agent 覆盖新数据。
- 批处理使用数据库事务或持久 workflow。
- 设计幂等键,防止网络重试重复执行。
- 审计记录 mutation ID、actor、tenant、时间和结果。
- dry-run 不允许隐藏副作用。
- CSP 只开放必需域名。
- 不加载不受控远程脚本。
- 不在浏览器里保存长期秘密。
- 不把 HTML 显示能力当作后端访问权限。
- 文件读取和下载必须限制路径和 MIME。
- 错误中不返回堆栈、连接串或 token。
- 对日志和审计字段做秘密信息过滤。
- 大对象返回摘要和稳定引用,避免把全部敏感数据塞进模型上下文。
仓库自带 JSON Adapter 是本地单用户示例。它提供原子文件写入和乐观锁,但不提供跨进程文件锁、远程身份、多租户隔离或数据库事务。生产系统必须替换 Adapter。