模块 00第 1 学期 · 基础
入门导览:Vibe Engineer 的思维方式
登录后可在不同设备间同步进度。在此之前,进度只保存在当前浏览器中。
为什么重要
Demo 只有一个用户,就是你自己:网络良好,数据干净,把顺利路径(happy path)走一遍。生产环境则有成千上万的用户、糟糕的网络、恶意输入、并发点击、时好时坏的依赖、一张云账单,还有监管机构。AI 工具非常擅长做 demo。从 demo 到生产之间的差距,恰好就是海报上的那 111 项。
学习目标
- 说清楚原型、MVP 和生产系统的区别,以及它们各自对用户负有什么责任。
- 按爆炸半径(blast radius,即出错时最坏的后果是什么)给任何功能分类。
- 采取技术负责人的姿态: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 做出来的应用。
- 列出所有功能,并给每个功能标上爆炸半径等级。
- 对等级最高的两个功能,用五个视角逐一检查。
- 对仓库历史运行
gitleaks detect。 - 在线上应用中打开浏览器开发者工具,在加载的 JS bundle 里搜索
key、secret、sk_、service_role。
完成标准
反思题
111 项中,哪些你曾默认 AI 工具或托管平台会“替你搞定”?写下你会如何验证。