2025年初,前 OpenAI 联合创始人 Andrej Karpathy 提出了「Vibe Coding(氛围编程)」——“完全沉浸在「Vibe」中,拥抱指数级提升,甚至忘记代码本身的存在”。但到了2026年,这场「新世纪编程法」的狂欢,却演变成了一场网安环境的灾难。在网络安全公司 Snyk 的调查中,91.6%的受访者承认AI至少“有时”会生成不安全的代码建议,尽管知道AI会出错,高达75.8%的受访者却认为AI生成的代码比人类编写的代码更安全1。当一个投入「新世纪编程法」的怀抱的创业者花了半小时就用AI写出了一个电商页面时,他并不知道,自己和用户的隐私正在互联网上裸奔。
关于原因:AI「从目的上」走错了歪路
为什么这个世界上最聪明的AI会写出最为愚蠢的漏洞?因为大模型的本质是对输出的文本做「概率上的预测」,它优先输出的是「最可能跑通的代码」,而不是「最安全的代码」。而在 Vibe Coding 的工作流中,用户唯一的验收标准是用「Vibe(感觉)」来验收,也就是“能跑通就行”。这导致了三个致命的缺陷:
1.「硬编码凭证」2的泛滥。
AI为了让你快速看到效果,会“贴心"地把数据库密码、支付密钥等直接写到代码里。这就导致一旦你的密码被写到了前端代码里,攻击你网站的黑客几乎什么都不需要干,他只需要在浏览器里按下F12,打开开发者工具,把前端的源代码下载下来看一眼,就可以知道你服务器最高权限的密码。
2.「输入验证」的缺失
AI在写代码的时候,借助的是其训练数据中的代码,而它的训练数据中每一段代码的作用都是由人类标注的,当你要求AI写一个网站,却没有要求它对用户输入的文本、上传的文件做验证时,它就会在输出的时候略过所有训练数据中被标注为「输入验证」的代码。这就导致了一旦网站有一个地方可以输入文本或者上传文件,黑客就可以开动脑筋,通过注入攻击让服务器运行任意一个恶意代码了。
3.「技术债」的堆积
人类程序员写代码,会考虑性能、未来维护成本,并对可能存在的风险进行预判,但「新世纪程序员」不懂这些,AI虽然懂,但它是个“I人”,除非用户主动的以细致的语言去提问或要求,否则它根本不会告知用户。这就导致「技术债」会逐渐堆积,最终以成本的形式爆发出来。
关于解决方案:提示词的艺术
不论是「硬编码凭证」的泛滥、「输入验证」的缺失、「技术债」的堆积,又或是其他的问题,原因大多都是提示词没有写好,但对于一个非技术型创业者来说写就一手相较来说专业的提示词明显是一个很困难的事情。那既然如此,为什么不让这个世界上最聪明的「智械」帮你写呢?是的,用AI撰写提示词,反过来再用AI撰写的提示词让AI编写代码,完美的生态闭环。那么,具体应该怎么做呢?我们可以通过在让AI回答提示词前进行提问,来为补足需要的信息,例如,我们可以添加如下提示词:
请你在回答前先向我提问,一次只问一个,根据我的回答持续追问,直到你有信心完全理解我的真实需求和目标时,再给出最终的提示词方案。
即便是一行代码都读不懂的人,也可以用这个方法较为简单的有效扩充自己的提示词。
小结
「Vibe Coding」无疑是一场伟大的效率革命,是时代慷慨赠予我们的红利。AI让创造变得前所未有的快,却也让人类需要承担的责任变得前所未有的重。而在本文的最后,我打算用 AMD CEO 苏姿丰的一句话做结尾:
For everything that AI can do, AI can't decide which problems are worth solving, it can't make the hard judgments when the data is not there, it can't take responsibility for the outcomes. These are actually our responsibilities, and they matter now more than ever.
(尽管AI能做很多事情,但AI不能决定哪些问题值得解决,当数据不存在时,它不能做出艰难的判断,它也不能对结果负责。这些实际上是我们的责任,而且它们现在比以往任何时候都更重要。)
