AI 辅助编码不能替代安全经验:一项 Gemini 编程研究的启发

1016 字
5 分钟
AI 辅助编码不能替代安全经验:一项 Gemini 编程研究的启发

arXiv 上一篇 2026 年 3 月的论文研究了 Gemini 对安全相关编程任务的影响。研究对象是 159 名开发者,任务是完成一个安全相关的编程问题,并比较不使用 AI、使用免费版 Gemini、使用付费版 Gemini 的差异。

论文的一个重要结论是:研究没有观察到使用 Gemini 在安全开发结果上的显著差异,而开发者自身的编程经验会显著改善代码安全性。换句话说,AI 可以辅助开发,但不能直接替代安全经验。

这项研究为什么重要#

现在很多团队在引入 AI 编程工具时,会默认它能提高效率。但安全问题不是只看速度。

一个功能写得更快,并不代表更安全。AI 可能生成看似合理的代码,但遗漏边界检查、输入校验、权限判断、错误处理和日志保护。更麻烦的是,AI 生成的代码通常很流畅,容易让 review 者降低警惕。

这项研究提醒我们:AI 辅助编码的价值需要拆开看。它可能提高完成速度、降低入门门槛、帮助解释 API,但安全质量仍然依赖开发者是否知道该检查什么。

AI 在安全编码中的典型问题#

第一,AI 容易给出“常见写法”,但常见写法不一定安全。例如直接拼接 SQL、弱校验输入、过宽的异常捕获、把敏感信息写入日志。

第二,AI 不一定理解业务风险。安全问题经常和业务语义有关,例如某个字段能不能被普通用户修改,某个接口是否允许越权访问。这些信息往往不在代码片段里。

第三,AI 可能漏掉环境约束。真实系统有框架版本、部署拓扑、认证方式、审计要求和合规边界。脱离这些上下文,生成的修复方案可能不完整。

团队应该怎么用 AI 写安全相关代码#

不要把 AI 当成安全负责人,而要把它当成辅助执行者。

一个更稳妥的流程是:

  1. 先让 AI 明确列出潜在风险点,而不是直接写代码。
  2. 要求它说明输入、权限、异常、日志、加密、依赖版本这些检查项。
  3. 生成代码后,必须配套测试,包括正常路径和攻击路径。
  4. 对认证、授权、支付、个人信息、文件上传等模块保持人工 review。
  5. 对高风险改动运行静态扫描、依赖扫描和安全测试。

这样使用 AI,能把它的优势放在“辅助分析和生成候选方案”,而不是让它直接承担最终安全判断。

给个人开发者的建议#

如果你经常用 AI 写代码,可以建立一个固定提示模板。

请从安全角度 review 这段代码。
重点检查输入校验、权限控制、敏感信息泄露、错误处理、并发问题和依赖风险。
不要直接修改代码,先列出风险、证据和建议测试方式。

这类提示比“帮我看看有没有问题”更有效,因为它把检查方向说清楚了。

同时,不要只让 AI 写 happy path 测试。安全问题往往出现在异常输入、越权身份、重复请求、并发提交和边界值里。

我的判断#

AI 辅助编码会继续提高研发效率,但安全质量不会自动提升。真正可靠的做法是把 AI 放进安全开发流程:让它帮助发现风险、生成测试、解释代码,但最终仍由工程规范、自动化检查和有经验的人来兜底。

对团队来说,AI 编程时代更需要安全基线,而不是更少的安全训练。

参考资料#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

AI 辅助编码不能替代安全经验:一项 Gemini 编程研究的启发
https://blog.1024588.xyz/posts/2026-05-16-ai-assisted-coding-security-study/
作者
柚子是只猫
发布于
2026-05-16
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
柚子是只猫
记录工程实践、AI 编程和长期可复用的技术经验。
本站公告
如果觉得字太小,可以按住ctrl+鼠标滚轮调整页面大小
分类
标签
站点统计
文章
32
分类
7
标签
76
总字数
40,981
运行时长
0
最后活动
0 天前

文章目录