有没有办法在 Cargo.toml 中声明我的项目仅依赖于保证传递使用 Safe Rust 的第 3 方 crate?
我是 Rust 新手,Rust 对我来说也是新手。我还没有机会尝试任何东西。
首先,每当作者提及不安全代码的使用时,请检查 crates.io 文档。您可以通过在源代码中搜索
unsafe
关键字来仔细检查。
但是,检查板条箱及其依赖项的源代码是一项乏味的工作。名为 cargo-geiger 的工具提供了有关板条箱及其所有依赖项中不安全使用情况的统计信息。安装后,导航到您的
Cargo.toml
文件并分析它:
cargo geiger
它将下载并扫描所有依赖项,然后将三个符号之一分配给一个箱子:
Symbols:
🔒 = No `unsafe` usage found, declares #![forbid(unsafe_code)]
❓ = No `unsafe` usage found, missing #![forbid(unsafe_code)]
☢️ = `unsafe` usage found
注意,它只提供了
unsafe
关键字的用法。但为了进行更彻底的分析,请使用 cargo-crev 检查代码,以验证包依赖项的可信度和安全漏洞。此外,如果您发现不安全代码,可以向 safety-dance 存储库报告。
检查完依赖关系后,就该评估您的项目了。首先,使用
clippy
linter 工具捕获常见错误:
cargo clippy
此外,将
#![forbid(unsafe_code)]
宏添加到您的文件中以表明禁止不安全的代码块。或者,您可以在 README.md
文件中显示徽章,帮助其他人发现您的箱子是安全的:
[![unsafe forbidden](https://img.shields.io/badge/unsafe-forbidden-success.svg)](https://github.com/rust-secure-code/safety-dance/)
进一步阅读: