题目
如何防止工具参数中的命令注入、SQL 注入、路径穿越和 SSRF?
答案
所有模型生成的参数都按不可信输入处理,并在具体执行边界校验。 - 命令执行使用固定程序和参数数组,避免拼接到 Shell;对允许的子命令和参数设白名单。 - SQL 使用参数绑定;表名、列名等不能绑定的标识符采用白名单。自然语言查数还应限制只读语法、数据库权限和资源消耗。 - 文件路径规范化后检查是否位于允许目录,考虑符号链接与检查后的竞态,必要时使用操作系统级隔离。 - URL 校验协议、域名和最终解析地址,阻止内网、环回、链路本地及元数据地址;重定向后再次检查,并使用网络出口规则兜底。 只让模型“生成安全参数”不够。最小权限能减少漏检后的影响,日志和错误信息也要避免泄露内部路径、SQL 或凭证。