Matt 当时在想什么?What Was Matt Thinking?
文章回顾了 1996 年由一名高中生开发的经典早期网络程序库 Matt's Script Archive。虽然作者指出该程序库在构建时完全没有考虑安全性并导致了大量漏洞,但它并非只有负面历史。文章探讨了这套曾经风靡全球论坛和留言板的代码库在互联网早期的历史意义和深远影响。
目前,我正在写一篇关于网络论坛起源的长文,但我碰巧遇到了一个非常离奇的插曲,以至于我决定停笔,先写一篇单独的文章。因为我觉得它实际上能很好地解释人们使用互联网的方式。
事情大概是这样的。大约在1995年,一个名叫 Matt Wright 的高中生决定建立一个网站,分享他编写的一些基础网站工具。其中许多工具都非常简单,比如联系表单、留言板和网站计数器。其中一个名为 WWWboard 的工具更是大受欢迎,成为了互联网上最早被广泛使用的网络论坛应用之一。
Wright 建立的这个名为“Matt’s Script Archive”的网站,在无意中突显了普通人与开发者对软件看法的分歧。
Wright 和其他像他一样的人,敏锐地捕捉到了一个明显的需求。普通人找到了这些脚本并运行它们,立刻就拥有了论坛、计数器和联系表单。它们确实解决了问题。但是,那些早已不是高中生、也不再那么初出茅庐的程序员们,对 Wright 的所作所为感到不寒而栗:他将设计糟糕却被广泛使用的软件传播到了整个互联网。这些软件充满了安全漏洞,但最糟糕的是,它们几乎没有得到过什么更新。
安全问题到底有多严重?嗯,看看 OpenCVE 就会发现一些非常严重的问题,从因过度暴露而产生的漏洞,到一些值得商榷的设计决策应有尽有。(把加密的密码文件放在根目录下?通过 URL 就能获取环境变量?这可真不是明智之举!)
其中一个漏洞尤为突出,它影响了 Wright 的 textcounter 工具:CVE-1999-1479,其严重性得分高达 10.0,该漏洞实际上允许攻击者以 root 权限在服务器上执行代码。
这种情况变得如此严重,以至于出现了一个名为 nms 的竞争网站,其核心目的就是用可以直接替换的版本来取代 Matt 那些充满漏洞的脚本,这些新版本不会因为糟糕的编码而充斥着安全漏洞。他们的观点是:
问题在于 Matt’s Script Archive 中的脚本并不怎么好。在 Perl 社区中,众所周知这些脚本编写拙劣、漏洞百出且不安全。在任何论坛上寻求 Matt 脚本支持的人,都会被直截了当地告知不应该使用他的脚本。遗憾的是,在很长一段时间里,都没有什么让人称心的替代品来取代 Matt 的脚本。2001 年,London Perl Mongers 决定解决这个问题,并为 Matt 的脚本编写了一系列可以直接替换的替代品。这个项目正是其成果。
(我要指出的是,由于 nms 本身也有大约 20 年没更新过了,所以也许到了 2026 年,你也会想暂缓使用它。)
Matt 的脚本、简单的选择以及过度曝光带来的问题
当使用某个东西的人多到让它成为互联网的“通用语”时,漏洞的出现就不可避免了。WordPress 和 Windows 之所以有漏洞百出的名声是有原因的,这在很大程度上是因为有无数双眼睛盯着这些特定的工具。
考虑到这一点,我认为因为代码糟糕而责怪 Wright 是不公平的——毕竟,他当初也不知道它会成为一个巨大的平台。然而,我认为这给安全团队留下了一个教训,因为他们将不得不疲于应对那些只图省事、选择最简单方案的用户。
普通人不想花上几个小时去逐一审视天底下所有的选项,只为了找点好东西。他们只希望东西能直接用,而且未必会去多想怎么把它变得更好。
当然,这就是为什么如今 vibe coding 会如此流行。它触及了当年易于访问的脚本存档(script archive)所面临的同样矛盾。正如看待这些脚本一样,你可以把 vibe coding 生成的应用看作是不懂行的人搞出的不安全垃圾,也可以把它们看作是大众化的工具。
问题在于,严格来说它们两者兼具。你能在欣赏其中一面的同时也欣赏另一面吗?我有答案,那就是可以。
铭记 Matt 的脚本
最近,我在曾经托管过 Matt’s Script Archive 的那个域名上发现了一个令人惊叹的项目。就在一年前,worldwidemart.com 还在托管垃圾赌博内容,这类东西可能会让你的电脑感染病毒。
但那个所有者在去年年底让该域名过期了。结果证明这是件大好事。一个真正在乎 Matt’s Script Archive 历史遗产的人决定买下这个域名,建立了一个新网站,解释曾经存在于那里的历史遗产,以及为什么那些脚本尽管漏洞百出却依然意义重大。
这个新站点明显带有 vibe coding 的味道,但你知道吗?它也为互联网历史做着极其重要的事情。大家都知道,当有人出于不太光彩的原因接管一个具有历史意义的网站时,我是那种会大声抱怨的人。但我浏览了这个页面,没有发现任何值得抱怨的理由——没有任何暗地里见不得光的“没错,我们这么做就是为了向你推销东西”的戏码。我原以为会看到那种内容的页面,也就是位于 /hosting/ 的链接,反而是对过去 30 多年来 web hosting 如何演变的解释。
换句话说,这个网站太棒了。如果我们要把域名复活成僵尸网站,我宁愿它是一个解释这里为何曾具有历史意义的 vibe coding 产物,而不是连发垃圾邮件的人都不要的东西。
Matt 当初是怎么想的?他只是想帮个忙。而他也确实做到了。
无脚本链接
如果你喜欢这类老古董,我建议你去看看死亡网站存档 rip.so,它刚好能击中你的这个多巴胺开关。
顺便一提,考虑到今天这篇文章,The Verge 这篇关于 vibe coding 安全风险的文章显得尤为切题。
我发现 LinkedIn 居然有大约十来个指望你每天去玩的游戏,这太诡异了。我们需要给它起个名字,而 Juniper Dev 想出的“corporate puzzleslop”简直完美。(而且她的频道也很棒,她非常懂行。)
--
觉得这篇文章读起来很有趣吗?分享给朋友吧!(1997 年的时候,Matt 有没有帮你运行过留言本?)
另外,一定要去看看 Tedium Shopping Network 上的最新内容。
需要完整排版与评论请前往来源站点阅读。