2026年6月26日 你的依赖可以读取磁盘上的任何文件。cap-std 让它们先请求权限。 Rust 的标准库向每个依赖授予隐式的文件系统权限。cap-std 将其替换为基于权能的 API,强制代码在打开路径之前证明它有权访问该路径。 capability-based-securityrustcap-stdsandboxing
2026年6月25日 你的服务在不知不觉中成了帮凶:Confused Deputy 攻击是如何运作的 Confused deputy 攻击会诱骗一个拥有特权的服务,让它利用自己的权限攻击自己。以下是攻击者如何利用隐式信任发起攻击,以及为什么 capability-based security 才是解决方案。 capability-based-securityconfused-deputysecurityattacks
2026年6月24日 你的权限检查正在欺骗你 基于能力的安全模型用不可伪造的权限令牌取代零散的角色检查。以下是如何在 TypeScript 中实现它,同时不让代码变得难以阅读。 capability-based-securitytypescriptpermissionssecurity
2026年6月23日 如果每个函数都必须获得许可,而不是默认拥有,会怎样? 大多数代码运行在 ambient authority 之下:每个函数都能触碰一切。Capability-based security 翻转了这一范式,强制函数只能接收显式、受限定范围的权限。 capability-based-securitypermissionssecurityzero-trust
2026年6月22日 别再抛出你的类型检查器看不见的错误 抛出的异常会把失败路径从你的类型系统中隐藏起来。下面解释为什么显式返回错误能让代码更诚实,以及如何在不折磨自己的情况下采用这一模式。 type-level-correctnesserror-handlingtypescriptrust
2026年6月21日 Rust newtype 在编译期让非法状态无法表示,且零开销 一个单字段包装结构体就能在编译期捕获单位混淆和类型错用,不增加哪怕一个字节的开销。 type-level-correctnessrustnewtypeszero-cost-abstractions
2026年6月20日 Switch 语句让 bug 逃过编译期检查 TypeScript 的 switch 语句会悄无声息地让你遗漏分支。下面介绍如何用穷尽性检查模式来替代它,让构建阶段而非运行时暴露错误。 type-level-correctnesspattern-matchingtypescripttype-safety
2026年6月19日 编译器应该捕获遗漏的状态分支,而不是你的 QA 团队 给状态机添加新状态很容易。记住更新每一个 switch 语句却不然。下面介绍如何让 TypeScript 在你遗忘某个 case 时拒绝编译。 type-level-correctnessstate-machinesexhaustiveness-checkingtypescript
2026年6月18日 可以,但你的类型系统需要先知道什么是美元 TypeScript 把所有数字视为同一个东西。下面介绍如何让它区分 USD 和 EUR,使编译器在代码上线前就能拦截货币转换相关的 bug。 type-level-correctnesscurrencytypescriptfinancial-software
2026年6月17日 数字不只是数字:如何让编译器在编译期捕获单位错误 该传秒的地方传了毫秒,这种 bug 能躲过所有测试。下面介绍如何将单位直接编码进 TypeScript 的类型系统,让混用在编译阶段就报错,且运行时零开销。 type-level-correctnessunitstypescriptzero-cost-abstractions