AI写的代码能跑就一定安全吗?
原创
秋风
秋风
北京秋风代码科技有限公司
2026年10月13日 09:57
北京
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
AI编程正在以前所未有的速度改写软件的生产方式。一句提示词,数分钟或者数十分钟,一个功能就形成了。很多开发者甚至企业默认了一个判断标准:代码能跑通、界面功能和业务逻辑对,就没问题。但代码能跑和安全从来就不是一个维度。前者验证的是正常输入下的功能,后者要回答的是:当有人故意构造恶意输入、绕过权限、篡改参数时,这套代码还守不守得住。
今天我们来聊一聊这个话题,AI写的代码能跑,为什么不一定安全。
一、 AI生成的代码能跑和安全,是两套标准
首先要分清两个常被混为一谈的概念:功能正确与安全性
1、一段代码能跑,只能说明:输入合法、操作流程正确时,它能给出正确结果。2、而安全关注的恰恰是:输入的值被恶意拼接构造怎么办、上传一个带有后门的文件怎么办、代码中明文写了用户名密码怎么办,用户越权访问别人的数据怎么办,因此,这些才是漏洞的藏身之处。
二、 AI生成的代码主要有哪些问题?
Veracode的测试给出了最直接的证据:通过对100多个大型语言模型的全面分析,发现了一个令人担忧的事实:在涉及四种编程语言和四种常见安全漏洞类型的80项编码任务中,只有55%的由人工智能生成的代码是安全的。这意味着,几乎有一半的人工智能生成代码存在已知的安全缺陷。
AI生成的漏洞并非随机分布,而是高度集中在几类可复现的模式上:
1、第一类是访问控制失效。AI很擅长写出检查是否登录的逻辑,却常常漏掉检查你是否有权限做这件事。比如生成一个管理后台的接口,代码验证了用户已登录,却没有校验其角色是不是管理员,结果任何登录用户都能调用管理功能。
2、第二类是注入与跨站问题。在Veracode的测试中,跨站脚本(XSS)相关任务失败率高达86%,日志注入失败率达88%。模型常常直接信任用户输入,把未经转义的内容渲染进页面或写进日志。
3、第三类是密钥与敏感信息处理不当。为了让代码立刻能跑,AI倾向于把连接字符串、API密钥直接硬编码在文件里,并且这正是无数早期编程模型训练示例的写法。
4、第四类是异常与资源管理缺失。AI生成的代码往往不处理数据库断连、文件句柄不释放、异常时直接把完整堆栈信息返回给前端,既可能导致服务崩溃,也会泄露内部路径和版本。
5、第五类是组件安全。由于AI在生成代码时,也会自动的将使用的组件直接引入,但却忽略了引入的组件安全,也会导致软件供应链安全问题。
三、 最危险的不是漏洞,是对AI生成代码的信任感
如果说AI写出漏洞还可以靠代码审计发现,那么真正致命的,是它同时制造了一种虚假的安全感,让人们忽略了代码审查的重要性。
斯坦福大学的研究人员曾做过一项对照实验:把参与者分成两组,一组可以使用AI编程助手,另一组只能手写。结果是,使用AI助手的参与者写出的代码安全性显著更低,但他们却比手写组更相信自己的代码是安全的。任务感觉上完成了,检查动作也就停了下来。
为什么会这样?根源在于AI输出的流畅性与完成度具有强烈的迷惑性。AI给出的代码缩进工整、命名规范、界面美观,甚至还会附上一段标准注释,这种看起来很专业的外在表现,让人误以为代码的内在质量和它的规范写法一样可靠。当一个团队把开发者对这段AI代码很有信心当成安全保障时,这个信心本身就成了最大的缺口,流畅不等于正确,自信不等于安全,这是AI编程时代最容易忽略的问题。
四、 如何防止AI生成不安全的代码?
面对AI生成代码的安全问题,很多人的第一反应是:能不能通过重新训练、做安全微调,或者向模型灌输安全规则等方式去避免AI生成不安全的代码?这个方向听起来合理,现实中却几乎走不通,企业级大模型的能力来自千亿级参数和海量训练数据,是一个既无法被普通企业重新训练、也难以被精确干预的黑盒,一次安全微调不仅成本高昂、需要大量高质量的安全语料,还极易顾此失彼。
很多人也会说,难道AI编程就不能用了吗?这里并不是要否定AI编程,因为它带来的效率提升是真实且不可逆的趋势,正确的应对方式,是从默认信任转为默认存疑,把每一段AI生成的代码都当作不可信的外部输入来对待,这不需要靠把模型变安全,而是要靠流程把风险挡在上线之前。具体可以落在几个关键防线上。
第一道防线是流程。把代码安全检查嵌入研发人员的流程中,并且不要干扰研发人员,AI生成的代码必须和人工代码走相同、甚至更严格的门禁,不能因为它能跑就开绿灯。
第二道防线是代码审计与自动化检测工具。用SAST扫描注入、越权、硬编码密钥等风险,结合组件可达性分析过滤大量误报、按真实可利用性排序,让研发把精力花在解决危险的问题上。
第三道防线是检测出问题后的自动化修复,可以使用SAST的Agent模式,结合上下文生成可直接落笔的修复方案,由分析引擎自动复验。
五、 结语
AI写的代码能跑只是起点,经过安全验证的代码才是终点,AI编程是不可逆的趋势,真正该被淘汰的不是AI编程,而是能跑即安全这套早已过时的判断标准。让AI负责效率,让审计规则负责安全,这才是AI编程时代既不牺牲速度、又能守住底线的最佳实践。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论