基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
技术实践2026-10-23 20:30

Agent 权限校验应放在工具执行之前

dev.to · AI#Agent#权限控制#安全
Editor brief · 编辑速览

Agent 的安全边界由工具、凭证和执行前校验构成,不能依赖提示词约束。文章建议提前认证调用者,在工具执行前校验具体资源权限,并记录工具参数与结果。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

Agent 能读文件、发邮件之后,安全问题就不只是模型会不会乱答,而是它能否把错误指令变成真实操作。原文的核心主张很明确:权限检查应放在工具调用路径中,由模型之外的代码执行,提示词不能承担这道防线。

这篇文章值得读的地方,是把认证、授权和监控各自该放在哪里讲清楚了。它也介绍了 reskSecure 和 ReskPoints 两个产品,但没有提供代码、实测结果或对照数据。可以借鉴架构思路,产品效果则要另行验证。

权限检查为什么要等模型选完工具

一次典型的 Agent 请求,会经过用户输入、模型推理、工具选择、工具执行,再把结果交回模型。

这里有两个不同的问题:调用者是谁,以及这次具体操作能不能做。前者是认证,应该在模型处理输入之前完成;后者是授权,要等模型生成工具参数之后、执行之前完成。

原因很直接:只知道用户身份,还不知道他准备操作什么;只知道工具名称,也不知道它将访问哪个文件、把邮件发给谁。拿到具体参数,才能把身份和目标资源放在一起判断。

模型负责提出调用,代码负责决定是否放行。

因此,把「不得读取敏感文件」写进 system prompt,并不能替代工具入口的权限判断。提示词可以指导模型,但不能保证模型始终遵守。真正的拦截必须在模型不配合时依然执行。

监控也要跟着工具调用走。只保存最后一段回答,看不出中间访问过什么,更难判断是否发生过越权尝试。

工具有权限,不代表调用者有权限

原文用读文件和发邮件两个工具说明攻击路径。

假设邮件工具使用一个拥有广泛发送权限的服务凭据。用户粘贴的文本中夹带了指令,要求 Agent 读取配置文件,再发到外部邮箱。模型接受这段注入指令,依次调用两个工具。从底层服务看,凭据有效,API 也接受请求,两次操作都可能成功。

问题出在:工具层只检查了凭据是否可用,没有判断当前调用者能否读取这个文件,也没有判断这个收件人是否在允许范围内。

这里需要两层约束。

第一层是缩小工具凭据的权限。读取工具只访问指定路径集合,发送工具只面向指定收件人集合,尽量减少单个工具失控后能触及的范围。

第二层是逐次授权。每一次调用,都用已认证的调用者身份和模型生成的具体参数重新判断。即便工具具备读取能力,也不能据此推定所有用户都能读取它覆盖的全部资源。

原文把顺序归纳为:认证、授权、执行、记录。这里的执行应以授权通过为前提,被拒绝的调用同样需要留下记录。日志至少包含调用者、工具、参数、授权决定和结果,才能解释一次操作为什么被允许或拒绝。

作者给出的产品分工是:reskSecure 在工具边界执行最小权限检查,ReskPoints 记录调用参数和结果,用于观察拒绝事件与异常模式。接入方式是包装工具执行入口,让每次调用都经过检查,同时写入监控记录,模型本身保持不变。

我的判断

我认同文章对控制位置的判断。与不断补充提示词规则相比,在工具执行前做权限检查,更适合承担必须强制遵守的约束。它也比只在入口验证登录状态更完整,因为登录成功并不等于可以操作所有资源。

但「最小权限」说起来简单,落到系统里仍有不少细节。指定路径如何处理路径别名,收件人范围如何维护,用户身份怎样可靠地传到工具层,原文都没有展开。凭据能否直接限制到路径或收件人,也取决于底层服务;不能原生限制时,需要在执行层补充检查。

日志同样不是越全越好。原文要求记录参数和结果,这有助于审计,但配置文件内容、邮件正文或凭据也可能因此进入日志。我的判断是,实际接入时还需要设计脱敏、访问权限和保留策略,这些并非文章已经解决的问题。

至于 reskSecure 和 ReskPoints,原文只有能力描述,没有集成示例、性能开销、绕过测试或与自建方案的比较。不能据此认定它们优于在现有工具网关中实现授权与审计。这部分属于方案介绍,尚不足以构成效果验证。

另外,「只有这一处才能同时知道身份和操作内容」说得过满。工具边界确实适合做检查,底层服务也可以继续执行资源授权。两处检查可以共同承担防护。

能拿来做什么

  • 在 Node Agent 服务里统一包装工具执行入口,先取得调用者身份,再检查工具参数对应的资源权限,授权通过后才调用底层 API。
  • 给 AI 编程助手开放文件读取能力时,先限定允许访问的项目路径,再按当前用户校验目标文件,避免把服务进程的文件权限直接交给模型使用。
  • 为发送邮件这类工具同时约束凭据和目标收件人,并记录调用者、参数、授权决定与执行结果;涉及敏感内容时,对日志做必要脱敏。
  • 定期查看被拒绝的工具调用,检查它们来自正常需求、参数错误还是注入尝试,再据此调整策略,避免为了消除报错直接扩大权限。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
AI 建站上线前,权限和表单必须验收
下一篇
LLM 审阅接口如何兼容批处理与流式输出

资讯速览

dev.to · AI · 2026-10-23 20:30

AI 评分 8.0 / 10

相关标签

#Agent#权限控制#安全

继续阅读

  • 编码 Agent 动手前先设好权限边界
  • AI 建站上线前,权限和表单必须验收
  • LLM 审阅接口如何兼容批处理与流式输出
  • Agent 跨会话记忆如何设计与落地
  • 用 Claude Code 串起视频制作流程