Rust 等内存安全语言的安全性并不优于C++?

非凸科技
• 阅读 267

美国国家安全局(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 内存安全,但他忽略了人性的善变。如果静态分析工具没有内置到编程语言中,它就能被跳过。认真对待内存安全的编程语言不会将其作为大多数人会忽略的可选附加组件提供,必须使用附加工具来解决语言的缺陷远非理想。

来源:觉学社

点赞
收藏
评论区
推荐文章
Stella981 Stella981
2年前
Rust学习笔记#6:所有权系统
!(https://oscimg.oschina.net/oscnet/up0b8d4b9e5e3854503a73fd494cd4b53d984.JPEG)引子:段错误与内存安全在刚开始接触Rust的时候,我们就提过Rust语言的定位:Rustisasystem'sprogramminglanguagethatr
Stella981 Stella981
2年前
Rust开发环境搭建
1.Rust概述按照百度百科的说法,Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C类似,但是设计者想要在保证性能的同时提供更好的内存安全。Rust最初是由Mozilla研究院的GraydonHoare设计创造,然后在DaveHerman,Brend
Stella981 Stella981
2年前
Rust 语言风靡学术界
AWS将Rust编译器团队负责人收入麾下的新闻让开发者们再次聚焦于这门兼具安全性与高性能的编程语言。近日,著名科学期刊Nature刊登了一篇文章,表明Rust语言也正在成为学术界最受欢迎的编程语言之一。2015年,德国生物信息学家JohannesKöster曾用Python编写了一个流行的工作流管理器Snakemake。但是现
Stella981 Stella981
2年前
PostgreSQL 动态更新 C 语言函数
PostgreSQL对于C语言编写的函数(包括其他与C语言兼容的语言,如C、Rust等),是动态装载的,用CREATEFUNCTION创建完函数后,并不会立即装载,而是有连接建立之后,客户端第一次调用时才会进行装载,而且是装入到会话进程的内存里面去了。这时候,就算我们把.so文件删除,如果会话之前已调过一次函数的话,客户端还是
Wesley13 Wesley13
2年前
Java学习路线图
JavaJava是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立
Wesley13 Wesley13
2年前
Java是一门面向对象编程语言的理解
Java是一门面向对象编程语言。不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有:简单性面向对象分布式健壮性安全性
Wesley13 Wesley13
2年前
PHP内核探索:写时复制COW机制
写时复制(CopyonWrite,也缩写为COW),顾名思义,就是在写入时才真正复制一份内存进行修改。COW最早应用在\nix系统中对线程与内存使用的优化,后面广泛的被使用在各种编程语言中,如C的STL等。在PHP内核中,COW也是主要的内存优化手段。在前面关于变量和内存的讨论中,引用计数对变量的销毁与回收中起着至关重要的标识作用。引用计数
非凸科技 非凸科技
1年前
Rust的安全性和稳健型
Rust是围绕安全性和稳健性而设计的。也就是,安全代码是不使用unsafe关键字的代码,声音代码是不会导致内存损坏或其他未定义行为的代码。“未定义行为”(UB)在C、C和Rust等语言中具有特定含义,不同于“未指定”或“实现定义”行为。Rust最重要的
非凸科技 非凸科技
1年前
Rust、Go 和 Swift 在性能和并发性方面有何差异?
Rust是一种系统编程语言,旨在快速、安全和并发。其性能令人印象深刻,可以生成快速高效的机器代码。
小万哥 小万哥
1个月前
C++ 编程入门指南:深入了解 C++ 语言及其应用领域
C简介什么是C?C是一种跨平台的编程语言,可用于创建高性能应用程序。C是由BjarneStroustrup开发的,作为C语言的扩展。C为程序员提供了对系统资源和内存的高级控制。该语言在2011年、2014年、2017年和2020年进行了