Rust 等内存安全语言的安全性并不优于C++?
-
美国国家安全局(NSA)最近发布了一份关于内存安全重要性的网络安全信息表,建议从内存不安全的编程语言(如 C/C++)转移到内存安全的编程语言(如 Rust)。 C++ 之父 Bjarne Stroustrup 博士表示,“Rust 等内存安全语言的安全性并不优于C++”。
对此,Rust社区是这样回应的:
1.Cpp之父的一些观点非常陈旧,并没意识到这些安全性大多与NSA网路安全信息并无关。2.Stroustrup博士反复强调内存安全并不是唯一的安全类型。实际上,内存不安全是迄今为止内存不安全编程语言中安全漏洞和不稳定的最大来源,在某些情况下高达70%。这恰恰是C++最严重缺陷的领域。而Rust语言则专注于解决内存不安全的问题,而C++不强制将内存安全作为编程语言的一项功能。
3.Stroustrup博士提醒大家不要忽略Cpp30多年的进步。虽然C/C++之间可能存在30多年的分歧,但C++所谓的进步并没有涉及从C++中删除内存不安全的C功能,其中许多功能仍在普遍使用,仍使内存安全在C++中难以处理。
4.Stroustrup博士认为通过静态分析工具可以保障Cpp 内存安全,但他忽略了人性的善变。如果静态分析工具没有内置到编程语言中,它就能被跳过。认真对待内存安全的编程语言不会将其作为大多数人会忽略的可选附加组件提供,必须使用附加工具来解决语言的缺陷远非理想。
来源:觉学社