安全视角下的第一道防线:提示词工程与安全约束

张开发
2026/4/19 7:03:31 15 分钟阅读

分享文章

安全视角下的第一道防线:提示词工程与安全约束
安全视角下的第一道防线:提示词工程与安全约束上周排查一个线上问题,设备半夜突然重启,日志里堆栈全乱。查到最后发现是AI生成的解析函数没做缓冲区边界检查,溢出把返回地址冲掉了。代码是同事用Codex生成的,提示词就一句话:“写个函数解析TCP包里的可变长字段”。看起来没毛病,但生成的代码里循环用的是while(*ptr),遇到非预期数据直接跑飞。这事让我意识到:提示词不只是需求描述,它是安全的第一道闸门。一、别把提示词当需求文档写很多人觉得提示词越简单越好,反正AI“能懂”。这是最危险的误区。你让AI“写个登录函数”,它可能给你返回不带密码哈希比较的明文验证;你让AI“实现文件上传”,它可能忽略后缀名检查。AI生成的代码质量,八成取决于你喂给它的约束条件。举个例子,你要个解析函数,得把安全边界说清楚:// 别这样写提示词:// “写个函数从缓冲区解析出主机名”// 得这样写:// “写个函数从缓冲区解析主机名,缓冲区最大长度256字节,主机名最大63字节,遇到非字母数字字符停止,如果超长返回错误码-2”后面这个提示词里埋了四个安全约束:输入长度、输出长度、终止条件、错误处理。AI生成代码时,这些约束会直接体现在循环条件和内存操作里。二、约束要具体到数据流层面安全约束不能停留在功能描述。你得想象数据怎么流动:从哪里来、经过哪些检查、到哪里去。最近审过一个AI生成的配置解析模块,提示词里写了“校验配置合法性”,但生成的代码只检查了值范围,没检查配置项名字是否合法。

更多文章