公司动态
AI 辅助算法训练与智能刷题系统设计:权限边界应该划在哪里
AI 辅助算法训练与智能刷题系统设计权限边界应该划在哪里刷题 Agent 可能读取题目、代码、执行结果和用户偏好。权限设计的基本原则是每个组件只拿到完成当前动作所需的数据和凭证不能因为“方便调试”把整个请求或长期密钥转发给模型供应商。划分信任边界Web/API 层负责用户身份、会话和请求校验。模型网关只接收经过脱敏的提示词并使用服务端保存的供应商凭证。判题执行器运行不可信代码使用独立身份、隔离文件系统、资源限制和默认拒绝的网络策略。题库、用户数据和日志按最小权限访问日志中不记录 Authorization、Cookie、完整源代码或密钥。传递什么不传递什么提示词应只含解题所需的题目片段、经过选择的代码和错误摘要。网关应显式构造出站请求使用 allowlist 传递字段而不是把入站 HTTP header 或整个上下文透传。服务间身份可采用短期令牌或工作负载身份具体机制取决于部署平台。type PromptInput struct { Problem string Code string Error string } func buildPrompt(in PromptInput) string { return 题目 in.Problem \n代码 in.Code \n错误 in.Error }buildPrompt只是字段白名单的最小示例投入服务前还要限制每个字段的长度并按业务需要删除账号、路径和令牌等敏感片段。代码内容本身也可能包含“忽略前文指令”之类的文本它应被明确标为待分析的材料不能影响网关的系统规则或工具权限。代码执行隔离不能仅靠--network none。还要限制挂载、Linux capabilities、进程数、CPU/内存、执行时间和系统调用并及时更新基础镜像。验收时可以提交一段尝试读取环境变量、访问外网和向标准输出写入超长内容的程序三项都应失败或被截断日志中也不应出现原始密钥或完整代码。