很多人已经在用 GPT 写代码了。
但我想问一个更现实的问题:
你敢不敢把“能不能上线”的判断权,交给 GPT?
不是“帮我优化一下”,
不是“有没有更好的写法”,
而是——PASS 还是 FAIL。
一个程序员每天都在经历,却很少被说清的问题
程序员真正痛苦的,往往不是写不出来代码,而是:
- 改了一版,又被打回
- Review 意见互相矛盾
- 安全问题只能“大家都注意点”
- 到底算不算违规,说不清楚
本质只有一句话:
没有一个可执行、可复现的工程裁决。
直接把代码丢给 GPT,让它“帮我改”,行不行?
行,但只能做到一半。
GPT 很擅长:
- 改写
- 重构
- 补充校验
- 看起来更“规范”
但它默认不会替你做裁决。
因为你没有告诉它:
- 哪些是不可协商的需求
- 哪些行为是直接判 FAIL
- 哪些决策不能用配置解决
我做了一个最小代码审计案例,只验证一个点
技术栈非常普通:
- FastAPI
- JWT
- 多租户
- 单接口
我只冻结一个工程问题:
tenant_id 的唯一可信来源是什么?
结论也非常简单:
tenant_id 只能来自 JWT payload。
- 请求参数 ❌
- Header ❌
- Path ❌
- 混合策略 ❌
这不是“最佳实践”,这是工程裁决。
为什么这是“代码审计”,而不是“设计讨论”?
因为一旦 tenant_id 来源不唯一,就会出现:
- 跨租户访问无法被彻底证明不存在
- 安全性依赖“开发者记得住”
- Review 变成主观讨论,而不是判断
审计的目标不是“写得好不好”,而是“能不能过”。
我把整个过程拆成了可复现的结构
这个仓库里没有教程,也没有炫技代码,只保留五类东西:
requirements.md
冻结需求,不允许解释和扩展implementation/
最小实现,只为验证裁决tests
用失败用例证明边界audit/
审计输入、拒绝点、差异说明verdict.md
最终裁决:PASS / FAIL(带原因)
你不需要信我,只需要复现。
GPT 在这里扮演的角色变了
它不是“帮你写代码的助手”,
而是:
- 执行冻结需求
- 对照实现
- 给出裁决
- 写出审计结论
当输入足够明确时:
一个 GPT 客户端,就可以完成一次完整的代码审计闭环。
为什么我坚持把过程放进仓库?
因为如果:
- 审计结论不能复现
- 判定标准不公开
- 只能“听我说安全”
那它就不叫审计。
项目地址
完整示例(实现 + 审计 + 最终裁决)在这里:
不用全部看。
你只看 requirements.md 和 verdict.md 就够了。
写在最后
代码审计不是靠经验堆出来的,
而是靠冻结决策 + 可执行判断。
当你开始让 GPT 执行“裁决”,
而不是“给建议”,
它的价值会完全不一样。