首页/AI/提示词工程速查/工具白名单与参数校验
提示注入与防护50 条

工具白名单与参数校验

工具调用走白名单与参数校验:工具名枚举、参数类型与范围校验、危险参数二次确认;自由文本不能直接变调用。

提示词工程速查AI更新于 2026-10-13

工具白名单与参数校验

注入最终要落到一次工具调用才能造成实际影响,所以工具调用这一环必须收口:工具名在注册表内做枚举校验,参数按 schema 校验类型、范围与格式,写操作与高影响参数(金额、收件人、路径)二次确认。自由文本不能直接变成调用语句,否则一次注入就是一次越权。

基本信息

工具名必须在注册表内(枚举校验),白名单外一律拒绝
参数按 schema 校验类型、范围、正则;越界拒绝
高影响参数金额、收件人、文件路径需二次确认
记录工具、参数、触发来源(用户指令还是内容)

典型使用场景

  • 工单代理:只允许创建与查询,不允许删除
  • 财务代理:转账金额超过阈值时强制人工确认
  • 运维代理:命令按白名单模板执行,不接受任意 shell 字符串
  • 数据代理:查询语句限定可访问的库表范围
  • 外部 API 代理:接口与参数取值一并枚举

调用前校验示例

调用前校验示例
1) 工具名必须在注册表内(枚举校验),未注册直接拒绝
2) 参数按 schema 校验:类型 / 范围 / 正则;越界返回错误
3) 写操作与高影响参数(金额、收件人、路径)二次确认
4) 调用记录:工具名、参数、触发来源、影响行数
5) 新增工具走评审流程,评审通过才进注册表

# 触发来源要能区分:用户明确要求,还是内容里诱导出来的
# 内容诱导的写操作一律升级为人工确认

校验层次与失效后果

层次校验内容跳过后的后果
工具名是否在注册表内注入可调用未授权能力
参数类型数字、字符串、布尔等类型类型错投导致下游异常或注入
参数范围取值区间与枚举越界参数触发非预期行为
高影响参数金额、收件人、路径二次确认误转账、误发信、误删文件
调用记录工具、参数与来源事后无法区分正常与异常调用
把工具名与参数直接拼接成命令执行,是最危险的实现方式:一次成功的注入就能越权调用任意能力,而日志里看不出与正常调用有什么区别。
只校验工具名不校验参数,等于开了半扇门。参数校验要覆盖范围与格式,尤其是金额、文件路径、收件人这类高影响字段。

易错点

  • 把工具名与参数拼接成命令直接执行,注入可直接越权调用未授权能力
  • 只校验工具名不校验参数,危险取值照样生效(例如超大金额、任意文件路径)
  • 高影响参数不做二次确认,一次被诱导的调用就是不可逆的业务损失
  • 不记录调用触发来源,事后无法区分用户主动调用与内容诱导的调用

数据来源与参考

  • OWASP LLM Top 10(2025)LLM06 过度自主性缓解;AgentDojo 防护评估思路
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌