8.0
热点
AI SCORE
技术实践2026-10-14 17:33
智能体审批如何防止越权与重复执行
dev.to · AI#Agent#权限控制#并发安全
Editor brief · 编辑速览
人工批准必须绑定具体操作,智能体修改金额或重试后不能沿用旧授权。文章提出执行时重算操作摘要,并用单条数据库更新原子校验审批状态、有效期和摘要,同时消耗授权,避免并发重复执行。
HITL(人工介入)环节展示了工具名称和一段被截断的预览。执行器收到的却是完整 payload。没有任何机制会比对两者是否一致。
Agent 申请退款 $100,获得批准后,在执行过程中判断情况比预想的更严重,于是改为退款 $200 并重试。操作变了,用的却还是同一次批准。
以 approval ID 为依据也无济于事。这个标识只能证明是谁批准的,不能证明批准者当时看到了什么。
要堵住这个漏洞,就得在执行时重新计算摘要,并以原子操作消耗这份授权:
UPDATE approvals
SET state = 'consumed', consumed_at = now()
WHERE id = :approval_id
AND state = 'approved'
AND expires_at > now()
AND digest = :live_digest
RETURNING id;
一条语句,四个前置条件;返回零行,就拒绝执行。先读后写的版本能通过所有测试,却会让四十个 worker 全部放行。
完整文章还讨论了字段分类问题。
如果还想采取进一步措施,可以考虑屏蔽此人和/或举报滥用行为。
这里是一个供程序员交流分享、了解最新动态、发展职业生涯的社区。