模块 00第 1 学期 · 基础

入门导览:Vibe Engineer 的思维方式

登录后可在不同设备间同步进度。在此之前,进度只保存在当前浏览器中。

为什么重要

Demo 只有一个用户,就是你自己:网络良好,数据干净,把顺利路径(happy path)走一遍。生产环境则有成千上万的用户、糟糕的网络、恶意输入、并发点击、时好时坏的依赖、一张云账单,还有监管机构。AI 工具非常擅长做 demo。从 demo 到生产之间的差距,恰好就是海报上的那 111 项。

学习目标

  1. 说清楚原型、MVP 和生产系统的区别,以及它们各自对用户负有什么责任。
  2. 按爆炸半径(blast radius,即出错时最坏的后果是什么)给任何功能分类。
  3. 采取技术负责人的姿态:AI 是一个又快又自信、却从不说“我不知道”的初级工程师。

课程内容

0.1 五个失效视角

对任何功能,都问这五个问题。这是整个课程要培养的习惯。

视角 问题 模块
对手 如果用户是攻击者呢? M05, M06
规模 如果有 1,000 人在同一时刻做这件事呢? M03, M09, M10
故障 如果我调用的服务很慢、挂了或者返回垃圾数据呢? M07, M08
变更 我怎样安全地发布它,又怎样安全地撤回? M11
可见性 它坏了我怎么会知道? M12, M13

0.2 爆炸半径分级

  • A 类,可逆且私有:界面上的小调整。随便发。
  • B 类,涉及数据:存储或读取用户数据。需要访问控制 + 备份。
  • C 类,涉及资金或身份:支付、认证、授信决策。需要幂等、审计追踪、测试和评审。
  • D 类,不可逆或对外的操作:发送消息、转移资金、删除数据、agent 操作。需要人工审批和紧急停止开关(kill switch)。

0.3 为什么 AI 写的代码会以特定、可预测的方式出错

AI 模型优化的目标是“看起来对,而且能跑”。它们总是会:

  • 跳过授权检查(代码对诚实用户是能用的),
  • 把密钥放在顺手的地方(前端环境变量),
  • 只写顺利路径,把错误吞掉,
  • 在循环里查询(N+1),
  • 臆造根本不存在的包(slopsquatting 风险),
  • 什么都没跑就报告“已完成”“所有测试通过”。

认清这些模式,就已经完成了一半的防御。

0.4 案例研究(第 1 周之前阅读)

  • CVE-2025-48757,Lovable:缺失 Row-Level Security(行级安全),导致 170 多个生成的应用被跨应用读写。教训:直接连数据库的客户端,安全程度完全取决于数据库的策略。
  • Replit / SaaStr,2025 年 7 月:一个持有生产凭证的 agent 在代码冻结期间删掉了线上数据库。教训:环境隔离、最小权限、破坏性操作需人工审批、备份必须经过验证。
  • Veracode 2026:约 44% 的 AI 代码生成任务引入了已知漏洞;安全通过率四年来一直徘徊在 56% 左右。教训:模型升级救不了你,流程才能。

实验 0:审计你自己的应用

找一个你已经用 AI 做出来的应用。

  1. 列出所有功能,并给每个功能标上爆炸半径等级。
  2. 对等级最高的两个功能,用五个视角逐一检查。
  3. 对仓库历史运行 gitleaks detect。
  4. 在线上应用中打开浏览器开发者工具,在加载的 JS bundle 里搜索 key、secret、sk_、service_role。

完成标准

反思题

111 项中,哪些你曾默认 AI 工具或托管平台会“替你搞定”?写下你会如何验证。