rust-guide完整指南:ANSSI官方Rust安全开发规范,从零构建零漏洞应用
【免费下载链接】rust-guideRecommendations for secure applications development with Rust项目地址: https://gitcode.com/gh_mirrors/ru/rust-guide
Rust 安全开发,只靠"内存安全"就够了吗?未必。rust-guide是法国国家网络安全机构 ANSSI 发布的 Rust 安全开发规范,系统列出了可能破坏 Rust 安全保证的陷阱与正确做法,帮助你从零构建零漏洞的高安全级别应用。
📌一句话定位:它不是 Rust 入门教程,而是一份"安全红线"清单——专为开发强安全要求应用的程序员设计。
什么是 rust-guide:官方规范帮你避坑
Rust 的所有权系统在编译期杜绝了内存错误和数据竞争,但某些特性使用不当仍会引入安全问题。rust-guide 的使命有三点:
- 指出陷阱:哪些语法"看起来安全、实际很危险"
- 划出红线:采用
Rule(必须遵守)与Recommendation(高安全场景必须)两级标注体系 - 覆盖全流程:从开发环境、依赖选型到语言细节,逐章给出可执行建议
阅读指南的设计思路可参考src/en/introduction.md。
6 条最重要的零漏洞规范
| # | 规范 | 一句话说明 |
|---|---|---|
| 1 | 整数溢出防护 | 算术运算禁用裸操作符,改用checked_*、wrapping_*、saturating_* |
| 2 | 限制 panic | 库代码禁止随意 panic;unwrap/expect仅限规格明确禁止的场景 |
| 3 | 安全数组访问 | 先校验索引,或用get方法返回Option |
| 4 | 最小化 unsafe | 非必要不进入 unsafe,每处使用都可证明安全 |
| 5 | 依赖审计 | 引入 crate 后务必用cargo-audit做漏洞检查 |
| 6 | 锁定工具链 | 使用 stable 工具链并锁定版本,保证可复现构建 |
这六条分别来自指南核心章节:src/en/integer.md、src/en/errors.md、src/en/unsafe.md、src/en/libraries.md、src/en/devenv.md。
指南内容地图:从开发环境到 unsafe 的全链路
| 阶段 | 章节文件 | 学什么 |
|---|---|---|
| 开发环境 | src/en/devenv.md | rustup 工具链选型、Cargo、Clippy 静态检查 |
| 依赖与库 | src/en/libraries.md | crate 可信来源、依赖验证工具 |
| 命名规范 | src/en/naming.md | 避免歧义的命名约定 |
| 整数运算 | src/en/integer.md | 溢出安全 API 的正确用法 |
| 错误处理 | src/en/errors.md | panic 边界与 FFI 错误传播 |
| 语言保证 | src/en/guarantees.md | 理解未定义行为(UB)的边界 |
| unsafe Rust | src/en/unsafe/ | 通用规则、内存管理、FFI 三大子章 |
| 标准库 | src/en/standard.md | Send/Sync、Drop 析构、Rc/Arc 循环引用陷阱 |
每个 unsafe 子章节都配有可运行的对照示例:
examples/src/counter.rs:跨语言计数器的正确写法(FFI 案例)examples/unsafe2/src/overflow.rs对比fix.rs:溢出漏洞与修复的经典对照examples/unsafe2/src/invalid.rs对比ok.rs:内存规则违规与合规写法
快速上手:三步在本地运行规范
第一步:克隆仓库
git clone https://gitcode.com/gh_mirrors/ru/rust-guide第二步:安装构建工具
项目附带三个自定义 mdbook 插件(checklist、code-align、extensions),安装步骤见README.md。
第三步:启动阅读
mdbook serve -o书籍配置见book.toml(英文版)与book.toml.fr(法文版),支持双语阅读;中、英、法三语源码分别位于src/根目录、src/en/与src/fr/。
常见问题 FAQ
Q1:Rust 本身是安全的,为什么还需要额外规范?因为 Rust 保证的是"内存安全、无数据竞争",并不覆盖全部安全面:整数溢出行为、跨 FFI 的 panic、Rc/Arc 循环引用、unsafe 代码的安全性,都需要显式规范。rust-guide 正是补上这些缺口。
Q2:新手能读吗?可以。指南面向所有希望"Rust 的安全保证不被自己误用而失效"的开发者;有经验的程序员也可以只扫高亮的 Rule 条目,快速定位红线。
Q3:如何参与贡献?项目采用开放协作方式维护(见CONTRIBUTING.md),欢迎提交建议与修订。
总结:3 个要点带走
- rust-guide 是 ANSSI 官方的 Rust 安全开发规范,定位是安全清单而非语言教程
- 溢出防护、panic 限制、安全索引、unsafe 最小化、依赖审计、工具链锁定,是通往零漏洞应用的最短路径
- 基于 mdbook 构建的双语书籍,本地一条
mdbook serve -o即可开始阅读
【免费下载链接】rust-guideRecommendations for secure applications development with Rust项目地址: https://gitcode.com/gh_mirrors/ru/rust-guide
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考