Hasty Briefsbeta

双语

Pitfalls of Safe Rust

a year ago
  • #Memory Safety
  • #Common Pitfalls
  • #Rust
  • Rust的内存安全性很重要,但对整体可靠性而言还不够充分。
  • 安全Rust中的常见错误包括:类型转换错误、逻辑错误、unwrap/expect导致的panic、恶意的build.rs脚本、不正确的unsafe代码以及竞态条件。
  • 避免常见问题的建议:防止整数溢出、避免使用'as'进行数值转换、使用有界类型、不要未经边界检查就索引数组、使用split_at_checked、让无效状态无法表示、避免在业务逻辑中使用原始类型、谨慎处理默认值、安全实现Debug、序列化时要小心、防范TOCTOU(检查时间与使用时间不一致)漏洞、对敏感数据使用恒定时间比较、不接受无限制输入、注意Path::join在绝对路径下的行为、使用cargo-geiger检查依赖中的不安全代码。
  • Clippy可以在编译时预防许多这类问题。
  • 测试、代码检查和模糊测试在Rust中仍然对实现最大健壮性很重要。