gdp-ts 教程:rauchg 出品,把越权漏洞堵在编译期

📌 项目地址:github.com/rauchg/gdp-ts | 星数:705+ | 语言:TypeScript | 协议:MIT | 出品:Guillermo Rauch(Vercel CEO)

📋 项目简介

『这个用户能读这个资源吗』——授权 bug 是 web 应用最常见也最贵的安全洞。Vercel CEO Guillermo Rauch 把学术界的 Ghosts of Departed Proofs(GDP)验证体系搬进 TypeScript:库 + linter + AI skill 三合一,让越权类 bug 在类型检查期就写不出来——人和 AI 编码代理都跑不掉。要求 TypeScript 5.4+。TypeScript 生态的配套工具见 Whirl全栈聊天应用,AI 编码代理的技能见 Claude Code自定义Skills。

✨ 核心特性

特性说明
编译期拦截授权/权益 bug 在类型检查期报错,上线前就堵死
零运行时开销仅一个 id 包装器,无额外查询与依赖
类型检查便宜每授权调用点约 0.3ms(冷 TS7),随使用频率而非代码库规模增长
增量采用任何 TS 代码库与运行时可用,不改 I/O 写法
易用-严格滑杆证明细度按风险偏好自定,skill 附 where-to-stop 建议
AI skill 内置教编码代理正确使用——AI 写的代码也逃不过类型检查

🚀 安装

# 装 AI skill(教编码代理)
npx skills add rauchg/gdp-ts

# 装核心库
pnpm add @gdp-ts/core

# 要求:TypeScript 5.4+

💡 使用建议

📚 常见问题

gdp-ts 是什么?

rauchg(Vercel CEO Guillermo Rauch)开源的『Ghosts of Departed Proofs』TypeScript 实现(705 星,MIT):库 + linter + AI skill 三合一,把『这个用户能读这个资源吗』这类授权/权益 bug 堵在编译(类型检查)期——对人和 AI 编码代理都生效,运行时开销趋近于零。

性能成本是多少?

运行时只多一个 id 包装器(安全来自类型检查器本身);类型检查成本约每个授权调用点 0.3ms(冷启动 TypeScript 7),成本随使用频率增长而非随代码库规模增长。官方附带基准。

怎么安装?严格程度可调吗?

两条命令:npx skills add rauchg/gdp-ts(装 AI skill 教编码代理用法)+ pnpm add @gdp-ts/core(装核心库),要求 TypeScript 5.4+。易用-严格是个滑杆:证明到多细由各代码库的风险偏好决定,skill 自带 where-to-stop 建议文档。增量采用,不改变现有 I/O 写法。