让 AI 写代码很爽,但爽完之后呢
前几天有个新闻:数千个用”vibe coding”方式开发的应用,在公开网络上暴露了企业和个人数据。
“Vibe coding”这个词可能你不太熟,但你可能就是它的用户——就是那种用自然语言跟 AI 对话,让 AI 帮你写代码的方式。Replit、Cursor、Windsurf 这些工具都在推这个概念。
然后问题就来了:代码是写出来了,但写得好不好、安不安全,没人管。
什么是 vibe coding
简单说,就是你不用懂编程,只要用自然语言描述你想要什么,AI 就能帮你把应用搭起来。
听起来很美。一个完全不懂技术的人,几句对话就能搞出一个带数据库、有登录功能的小应用。
但这恰恰是问题所在。
翻车的原因
暴露数据的原因,总结起来就一句话:AI 写代码只管能跑,不管安全。
具体表现为:
- API key 和数据库密码直接写在前端代码里
- 认证和鉴权逻辑缺失或者写得乱七八糟
- 环境变量没用,敏感数据硬编码
- CORS 配置全开,任何域名都能访问
- 日志里打印了不该打印的东西
这些问题在专业开发者看来是低级错误,但 vibe coder 根本不知道这些概念的存在。对他们来说,“能跑”就是全部标准。
这不只是新手的问题
你可能会说,那是新手的问题,专业开发者不会犯这种错。
但现实是,很多专业开发者也在用 vibe coding 加速开发。赶进度的时候,谁不想多依赖 AI 一点?
问题在于,AI 生成的代码默认不会考虑安全、性能、可维护性这些”隐形需求”。除非你明确要求,否则它给你的就是一个”能跑的最小版本”。
而大多数开发者——包括专业开发者——不会逐行审查 AI 生成的代码。他们会跑一遍,看看效果,然后直接上线。
这就是隐患。
工具提供商在做什么
Replit、Cursor、Windsurf 这些平台不是没意识到问题。他们也在加安全检测、代码审查之类的功能。
但核心矛盾没解决:vibe coding 的价值主张就是”不用懂技术也能做应用”,但安全偏偏是一个需要懂技术才能做好的事情。
这个矛盾怎么调和,目前没有好的答案。
我的建议
如果你在用 vibe coding:
- 敏感数据不要硬编码。环境变量、Secrets Manager,随便哪个都行,就是别写死在代码里。
- 上线前做一次安全审查。不需要很深入,至少检查一下有没有暴露的 API key、开放的数据库端口。
- 别把 vibe coding 当成唯一的开发方式。用它做原型可以,但上生产环境的代码,至少要有一个懂技术的人过一遍。
- 关注权限最小化。AI 默认会给很大的权限,你要主动把权限收紧。
长远来看
vibe coding 不会消失,它确实降低了开发门槛。但行业需要建立一套”AI 辅助开发的安全标准”。
就像当年 Web 开发从”随便写”到有了 OWASP Top 10、安全审计流程一样,AI 辅助开发也需要类似的规范。
只不过这次的规范不能只面向专业开发者,还得面向那些”不太懂技术但也在做应用”的人。
这个挑战比想象中要大。