一个“凑合用”的脚本库,怎么就成了互联网的功臣?
从 Matt 的脚本到 Vibe Coding:好用的工具为什么总是伴随着安全噩梦
话说回来,在 WordPress 出现之前,在 Squarespace 出现之前,在"无代码"这个概念还没被人挂在嘴边之前,就已经有这么个高中生,名叫 Matt Wright,干了一件挺疯狂的事——他把几个自己写的 Perl 脚本放到了网上。
大概在 1995 年,Wright 上线了 Matt's Script Archive,一个看起来挺简陋的脚本合集:留言表单、留言板、网页计数器,还有一个叫 WWWboard 的玩意儿,火得一塌糊涂。没几个月,成千上万个网站都在跑他的代码。普通人——那些连"Perl"是啥、 CGI 怎么工作都一头雾水的普通人——突然就拥有了能用的论坛和交互功能。
这大概是互联网最早的一次"工具民主化"尝试了。当然,效果嘛……该有的混乱一样没少。
会用的人,和会写的人,压根不是同一拨
Matt 的脚本为啥这么火?说出来挺讽刺的——正是那些让程序员看了直皱眉的特点,让它们火了起来:能用。不优雅,不安全,但就是能用。
Wright 不小心撞破了一个关于软件推广的基本事实:大多数用户根本不想了解自己的工具,他们只想让工具配合自己。 1996 年的一个小老板,他才不在乎什么输入验证、SQL 注入,他只在乎访客能不能在他的手工网站上留言。
另一边,经验丰富的开发者看到 Wright 的代码,眼珠子都快掉出来了。密码直接存在公网可访问的目录里。环境变量通过 URL 就暴露了。他那个 textcounter 脚本有个漏洞,CVSS 评分直接拉满——10.0 分,基本上就是给服务器开了个后门。
Perl 社区后来搞了个叫 nms(nongreedy's modifications)的项目,专门做功能一样的替代品,但至少不会让人直接被人 root。评价相当不留情面:"这些脚本在 Perl 社区那是公认的烂,bug 一堆,安全性约等于没有。"
越popular越危险?这个悖论有意思
接下来这段就有点哲学味道了。
Matt 的脚本其实并不是那个年代唯一写得很烂的代码。早期互联网上的代码,漏洞一抓一大把。真正的问题是——Wright 的代码用得太广了。当同一个有漏洞的软件跑在几千个网站上的时候,你面对的就不是一个小漏洞了,而是一场流行病。
这个套路后来重复了无数次。Windows。WordPress。jQuery。任何火到一定程度的工具都会成为靶子,不是因为它设计得差,是因为它到处都是。安全社区的工作不只是修 bug,还得让人明白"现在凑合能用"不代表"以后也凑合能用"。
但问题来了:有时候"凑合能用"恰恰是增长的发动机。一家创业公司用了某个早期的不太靠谱的工具,说不定就整出了下一个 WordPress。不让人们用不完美的工具,就等于不让人做东西。
Vibe Coding 来了
快进三十年。我们有了新一代的"凑合能用"工具:AI 辅助编程平台、vibe-coded 应用、直接部署到生产环境的 LLM 代码片段。
安全社区的反应已经在上演了。确实有人担心 AI 生成的代码有隐藏漏洞。确实有人在吵 vibe coding 到底负不负责任。也确实有人往生产环境里扔了一堆不安全的东西。
但批评者忽略了一件事:vibe coding 干的跟 Matt 当年的脚本是一模一样的事——让不是专业开发者的人也能做出能用的产品。一个个体创业者,现在一下午就能搭一个能跑 web 应用。这不是小事——这就是创作的民主化。
真正的问题不是 vibe-coded 应用安不安全——经常不安全。真正的问题是:可访问性带来的好处,值不值得用安全性来换?历史告诉我们,答案很复杂,但总体来说是正面的——前提是我们得搞出更好的工具、更安全的默认设置、更好的教育。
域名的小故事
这个故事还有个尾声,跟咱们聊 domain 的这些人特别有关系。
worldwidemart.com——曾经托管 Matt's Script Archive 的域名——后来过期了。有段时间它挂着那种让杀毒软件看了都头疼的垃圾赌博内容。然后去年,有人把这个过期的域名买下来,专门为了保存这段历史档案。
有人在乎互联网的历史,专门从域名抢注者手里抢救了一小块。这事儿值得记一笔。域名不只是技术资产——它们是文化符号。有时候,一个 domain 背后的故事,比它的 SEO 价值重要得多。
说了这么多,对你意味着啥
那现代开发者、创业老板们能从这里学到什么?
第一,"凑合能用"这四个字一直是推动普及的最大动力。别因为专家们瞧不上就否定一个工具。大家真正在用的工具,永远比专家推荐的工具重要。
第二,安全债是会累积的。如果你在"凑合能用"的地基上盖楼,得清楚自己继承了什么。技术债要规划,安全审计要排进路线图。
第三,可访问性和质量不是天敌,但需要平衡。我们的目标不是阻止人做东西,是让安全地做东西比不安全地做东西更容易。这事儿靠工具作者,靠平台,也靠我们所有人。
Matt Wright 当年没想着要改变互联网。他只是把一些脚本分享给了需要的人。有时候世界需要的恰恰就是这个。只不过——记得把依赖更新一下。