用不会执行内容的方式传递评审材料
Pass review artifacts through inert input channels
调用外部评审工具时,让待审文本始终作为数据传入。
以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。
使用场景
授权的外部评审需要读取含反引号、引号和命令替换语法的代码。把材料插进shell字符串可能在调用评审器前就执行它,而不是作为待审文本传入。
具体做法
核评审工具可信来源、实际版本、只读执行能力及材料外发授权。完整产物与契约用文件API写临时文件,以文件/标准输入或无shell的结构化参数传入,保持每个参数独立;不能把JSON.stringify当shell转义。记录材料摘要、调用身份和结果。审核内容始终标数据,限制继承环境和工具副作用。
反例
把待审代码直接拼进shell -p参数,认为双引号会让反引号和命令替换全部无害。
改进写法
将确切产物与契约写到文件,使用已核工具的标准输入及只读边界传递,参数以独立argv提供。材料元字符必须原样到达评审器而不执行;核已授权外发范围、环境和输出,不假设包装名称就保证沙盒。
为什么这样改
文件/标准输入通道把材料与命令语法分开,防止shell解释待审内容。只读及来源约束处理评审运行器本身的行为,但不替代输入信任说明。
如何验证
教学带反引号和命令替换的哨兵文本应完整出现在接收端,哨兵命令零执行。记录接收字节摘要与源一致,目标工作树未被评审修改;若未真实调用,只报告准备与验证计划。
适用边界
shell惰性传递不消除模型提示注入或网络外发风险。只读标志需实际实现核验,继承环境也可能含秘密;不同平台引用规则不同。冻结命令形状仅示例,本文没调用外部评审CLI。
原文与版本
- addyosmani/agent-skills · Pass review artifacts through inert input channels
查看此版本的文件9d0c60d406b4 - affaan-m/ECC · Executable and argument boundaries
查看此版本的文件ef648e01899b