风险与对策
| 风险 | 场景 | 对策 |
|---|---|---|
| 越权操作 | 模型被诱导调用删除/转账工具 | 权限清单 + 人工确认(高风险动作) |
| 参数注入 | 参数拼进 SQL/Shell | 白名单校验、参数化、禁拼接 |
| 数据外传 | 把内部数据发往外部 URL | 网络出口白名单、脱敏 |
| 权限放大 | 以系统身份执行用户请求 | 按用户身份执行,不混用系统凭证 |
工具调用校验(伪代码)
工具调用校验(伪代码)
def invoke_tool(user, name, args):
tool = registry[name] # 只注册白名单工具
if not user.allows(tool.scope):
raise Forbidden(name)
validate_schema(args, tool.schema) # 严格参数校验
if tool.risk == "high" and not user.confirmed(name, args):
return ask_confirmation(name, args) # 高危:先确认再执行
return tool.run(**args) # 工具内部再按用户身份调用OWASP 称之为“过度代理”(Excessive Agency):能力给多了,提示注入就从“说错话”升级成“做错事”。