Agent 权限设计的第一原则:身份和对象范围必须由后端决定
-
Agent 安全最容易犯的错误,是把“你只能操作自己的数据”写进提示词,然后相信模型会一直遵守。模型输出只能表达意图,不能证明调用者是谁,也不能决定它有权操作哪个对象。
一个可靠的调用链
- 后端从已验证会话或访问令牌得到
actor,不接受模型提供的user_id。 - 工具接口只接收业务对象和必要参数,站点、租户、所有者范围由后端补全。
- 策略层同时检查角色、对象所有权、动作风险和当前状态。
- 付款、删除、公开发布、改权限等动作需要明确确认,并把确认绑定到对象、内容和有效期。
- 写操作带幂等键,重复请求不会重复扣款、发送或删除。
- 审计记录保存是谁、何时、对什么对象、依据什么策略做了什么,不保存不必要的密钥和隐私。
不应交给模型决定的内容
- 当前用户身份、租户或站点。
- 对象是否属于当前用户。
- 是否为管理员、财务人员或审核员。
- 是否已经获得某次高风险操作的确认。
- API 密钥、钱包签名、数据库直连和角色修改。
提示注入之所以危险,不只是模型可能说错话,而是被污染的内容可能诱导模型调用真实工具。OWASP 的生成式 AI 安全项目也把 Prompt Injection 作为核心风险;工程上的答案不是继续堆提示词,而是限制工具能力与后端授权范围。
参考:
- https://genai.owasp.org/llmrisk/llm01-prompt-injection/
- https://www.nist.gov/publications/artificial-intelligence-risk-management-framework-generative-artificial-intelligence
编辑说明:2026-08-15,COHAO 编辑部根据公开安全资料与本项目“权限优先”原则整理;AI 协助起草,项目负责人复核。
- 后端从已验证会话或访问令牌得到