Source: Slashdot
Rust基金会的博客文章开始提醒读者,如果违反了内存管理规则,Rust程序将无法编译,从根本上消除了运行时的内存问题可能性。然后继续探讨“野生的Unsafe Rust”(用于少量动作,如解引用原始指针、修改可变静态变量或调用不安全函数)。基金会列出了可用的安全措施,使利用变得罕见但不是不可能。然后他们继续分析实际上有多少Rust代码实际上使用unsafe关键字,其中19.11%的Crate使用了unsafe关键字。
并且有34.35%的Crate直接调用另一个使用unsafe关键字的Crate。超过20%的Crate中至少有一个unsafe关键字实例。大多数Unsafe Rust的使用是调用现有的第三方非Rust语言代码或库,如C或C++。与unsafe关键字使用最多的Crate是Windows Crate,允许Rust开发人员调用各种Windows API。
这并不意味着这些Unsafe Rust块中的代码本质上是可以利用的,但在使用Unsafe Rust时必须格外小心,以避免潜在的漏洞。Rust在Unsafe的情况下仍然能够胜任作为安全和可靠编程的杰出而转变性的工具的声誉。但要维持这一声誉需要资源、合作和持续审查。
例如,Rust项目正在继续开发工具如Miri,以允许对不安全的Rust代码进行检查。Rust基金会通过其安全计划致力于此工作:支持和促进Rust编程语言生态系统和社区的安全状态。在安全计划下,Rust基金会的技术团队开发了新工具,如Painter(依赖图)、TypoMania(检查包注册表中的拼写错误)和Sandpit(用于监视恶意Crate的内部工具)... 在发生漏洞之前给用户洞察力,并允许快速响应如果发生利用行为。
在使用不安全的Rust代码时,必须格外小心,以避免潜在的漏洞,而Rust基金会通过持续的工作致力于维护Rust的声誉和安全性。" } ```