C++ 会变成像 Rust 一样的安全语言吗?
内容提要
C++专家Herb Sutter建议通过依赖工具、推广安全语言特性以及显式启用不安全特性来提高C++的安全性。Bjarne Stroustrup表示赞同,并提到ISO委员会在C++配置文件方面所做的工作。批评者认为,与Rust相比,C++在内存安全性方面仍然存在不足,例如线程安全。Sutter和Stroustrup认为,配置文件是使C++更安全的关键特性,而不会限制其表达能力。Sutter提供了具体建议,以帮助ISO委员会实现减少C++代码中CVE的目标。
关键要点
-
C++专家Herb Sutter建议通过依赖工具、推广安全语言特性和显式启用不安全特性来提高C++的安全性。
-
Sutter指出,C++需要解决四种主要的内存安全漏洞,包括越界读、越界写、空指针解引用和访问已释放内存。
-
Sutter认为,C++应严格执行安全规则,只有在程序员明确选择不遵循时,才允许不安全行为。
-
Sutter强调,默认启用安全规则不会限制C++的能力,采用非标准实践需显式选择以减少风险。
-
Sutter提到,大多数高严重性CVE与内存安全无关,MSL也有CVE,最终目标不是完全消除CVE。
-
Bjarne Stroustrup支持Sutter的观点,认为C++可以像Rust一样安全,但不那么复杂。
-
Stroustrup提到ISO委员会正在开展C++配置文件的工作,以便强制执行安全规则。
-
C++配置文件包括类型安全、边界安全和生命周期安全,符合这些规则的代码被认为是安全的。
-
批评者指出C++在内存安全性方面仍存在不足,特别是在线程安全等领域。
-
Sutter和Stroustrup一致认为,配置文件是提高C++安全性的关键特性,可以减少98%的相关CVE。
-
Sutter提出了一些具体建议,以帮助ISO委员会实现减少C++代码中CVE的目标。